Flask藍圖的用法
阿新 • • 發佈:2018-11-01
一,藍圖的初步使用
flask框架自帶的模組Blueprint,Blueprint 是一個儲存操作方法的容器,它相當於一個縮小版的app應用,但是一個Blueprint並不是一個完整的應用,它不能獨立於應用執行,而必須要註冊到某一個應用中。
藍圖的作用:解耦,模組化開發
未使用藍圖前:所有的檢視模組都在一個檔案裡面
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'hello world' @app.route('/user') def user(): return 'user model' @app.route('/cart') def cart(): return 'cart model' if __name__ == '__main__': print(app.url_map) app.run(debug=True)
使用藍圖(如抽離出user模組):
1.新建一個user.py檔案, 建立藍圖物件
from flask import Blueprint
"""藍圖物件可看做一個縮小版的app物件"""
bp = Blueprint('user_bp', __name__) # 第一個引數為藍圖名稱,隨便取
@bp.route('user/')
def user():
return 'user model'
2.在原檔案中匯入藍圖並將其註冊到app中
from flask import Flask from user import bp app = Flask(__name__) app.register_blueprint(bp) @app.route('/') def index(): return 'hello world'
註冊完之後便可通過url訪問到檢視函式啦
二:在實際開發過程中藍圖的目錄結構
前面僅僅使用了一個py檔案來編寫使用者模組,但是藍圖也可以有自己的靜態檔案和模板,它可以有更豐富的功能和更分明的功能模組。因此可一建立一個包來存放單獨的模組,目錄結構如下
最後在app所在的index.py檔案中匯入和註冊藍圖即可
三、目錄的擴充套件
藍圖可以有自己的靜態資料夾和模板資料夾
在cart模組下面再建立一個自己的靜態資料夾static和模板資料夾templates,templates指定為模板資料夾並指定模板語言為Jinjia2,此時應指明藍圖物件的其他幾個引數,如圖
附:一般只在程式主目錄放靜態檔案和模板檔案即可,簡單清晰,藍圖模組不在建立這兩個檔案以免檔案目錄結構冗餘複雜