flask框架4(蓝图)

  • 蓝图 使用模块化的思想对项目进行管理

    • 子模块
          from flask import Blueprint
          #1.创建蓝图对象
          bp = Blueprint("bp", __name__)
          #2.蓝图的使用
          @bp.route('/bp')
          def bp_info():
              return 'bp_info'
    • 主模块
          from flask import Flask
          #3. 导入蓝图对象
          from 子模块名 import bp
          app = Flask(__name__)
          #4.注册蓝图到app中
          app.register_blueprint(bp)
  • 使用举例:
    • 项目下有一个主模块BP_xxx.py,该模块正常导入flask,写主程序逻辑等
    • 同级目录新建一个子模块包,生成的__init__.py文件只负责导入工作,并新建一个view.py文件负责处理逻辑
      • 初始化 文件需要导入蓝图,并创建蓝图对象,view.py导入该初始化文件,直接使用蓝图对象创建路由和视图函数负责处理业务逻辑,然后再将该文件导回初始化文件
      • 子模块完成后即可在主模块文件内导入子模块,并使用app.register_blueprint()函数将路由和视图函数注册
    • 代码:
      • 首先新建子模块包,__init__.py内负责导入:
      from flask import Blueprint
      # 导入蓝图并创建蓝图对象,蓝图函数均未指明静态文件夹和模板文件夹,
      # 需要手动指定,这里的静态文件夹和模板文件夹直接使用项目的文件夹,
      # url_prefix指定的参数将加在所有使用该蓝图对象的路由url前面,
      #比如这里创建的url是'/page2',那么访问时必须使用'/page/page2'来访问
      bp_page = Blueprint('bp_page',__name__,static_folder='static',
                  template_folder='templates',
                  url_prefix='/page')
      #这里延迟导入
      from .view import *
      • 导入工作完成后,需要在view.py文件中写入业务逻辑
      from page2 import bp_page
      #从包里导入初始化文件中的蓝图对象
      from flask import render_template
      @bp_page.route('/page2')
      def page2():
      return render_template('page/page2.html')
      • 业务逻辑完成后即可在主模块中注册
      from flask import Flask
      from page2 import bp_page
      app = Flask(__name__)
      app.register_blueprint(bp_page)
  • 这样蓝图的任务就完成了,作用是分模块开发,将子模块的初始化导入及创建对象工作交给初始化文件,子模块的业务逻辑则在view.py文件中单独进行处理

原文地址:https://www.cnblogs.com/being-a-tester/p/10442853.html

时间: 2024-11-04 12:50:10

flask框架4(蓝图)的相关文章

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能 为了方便以后的应用切换,所以需要对 run.py 里的代码进行调整下. 1.在/demo 目录下创建 app_start.py /demo/app_start.py # config=utf-8 from demo

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 本次示例的源码下载:点击下载 Flask-Login 库的中文文档:点击进入 Flask-Login 库的新版英文文档:点击进入 一.导入并初始化 Flask-Login 库 在项目根目录下的/demo/__init__.py 文件的头部,import 进 flask_login 库 from flask_login imp

python高级之Flask框架

目录: Flask基本使用 Flask配置文件 Flask路由系统 Flask模版 Flask请求与响应 Flask之Session Flask之蓝图 Flask之message 中间件 Flask插件 一.Flask基本使用 1.flask简介 lask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功

Flask 框架小记

Flask 框架小记 Flask 实例 创建示例的代码 from flask import Flask # __name__ 是模块名, 用于反射导入模块 app = Flask(__name__, import_name, static_url_path=None, static_folder='static', static_host=None, host_matching=False, subdomain_matching=False, template_folder='templates

flask路由规划蓝图和route

引言: 在写任何web项目的时候路由的配置永远都是不可或缺的,如django中的include方法flask中的Blueprint这些都是用于将多个application中的路由区别开来,如果你要使用restful风格,那么这种路由一定是必须做的,很多教程在编写代码会在每一个视图函数上面写清楚完整的路径,包括请求的参数.以及请求的方法,其实就是为了达到这样的目的 在flask中当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这

Flask框架基础3

目录 线程threading 通过字典实现threading-local(函数) 面向对象版 通过setattr和getattr实现 每个对象有自己的存储空间(字典) 兼容线程和协程(源码到request中去看,看local的__getattr__,setattr) 请求上下文 蓝图 使用蓝图之中小型系统 使用蓝图之大型系统 g对象 flask-session 信号 线程threading from threading import Thread from threading import lo

Flask框架知识点整合

Flask 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. "微"(micro) 并不表示

Flask框架获取用户IP地址的方法

本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法. python代码如下: from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route,

Flask 框架构建

Flask 框架构建,目标构建成Django类似的结构 一. 先看看构建后的效果 # 第一次初始化 python manage.py db init # 生成数据库版本 python manage.py db migrate # 将定义的模型更新到数据库 python manage.py db upgrade 二. 看下范例代码 1.根目录下的manage.py文件: 2. electron/__init__.py  一些初始化工作放在这里了,用到了一些插件flask-sqlalchemy,fl