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文件中單獨進行處理
相關文章
相關標籤/搜索