码迷,mamicode.com
首页 > 其他好文 > 详细

flask框架4(蓝图)

时间:2019-02-27 13:10:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:info   xxx   inf   page   管理   目的   url   有一个   code   

  • 蓝图 使用模块化的思想对项目进行管理
    • 子模块
          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文件中单独进行处理

flask框架4(蓝图)

标签:info   xxx   inf   page   管理   目的   url   有一个   code   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!