Flask-蓝图
藍(lán)圖
在一個(gè)Flask 應(yīng)用項(xiàng)目中,如果業(yè)務(wù)視圖過多,可否將以某種方式劃分出的業(yè)務(wù)單元單獨(dú)維護(hù),將每個(gè)單元用到的視圖、靜態(tài)文件、模板文件等獨(dú)立分開?
例如從業(yè)務(wù)角度上,可將整個(gè)應(yīng)用劃分為用戶模塊單元、商品模塊單元、訂單模塊單元,如何分別開發(fā)這些不同單元,并最終整合到一個(gè)項(xiàng)目應(yīng)用中?
一、藍(lán)圖介紹
在Flask中,使用藍(lán)圖Blueprint來分模塊組織管理。
藍(lán)圖實(shí)際可以理解為是一個(gè)存儲(chǔ)一組視圖方法的容器對(duì)象,其具有如下特點(diǎn):
一個(gè)應(yīng)用可以具有多個(gè)Blueprint可以將一個(gè)Blueprint注冊(cè)到任何一個(gè)未使用的URL下比如 “/user”、“/goods”
Blueprint可以單獨(dú)具有自己的模板、靜態(tài)文件或者其它的通用操作方法,它并不是必須要實(shí)現(xiàn)應(yīng)用的視圖和函數(shù)的
在一個(gè)應(yīng)用初始化時(shí),就應(yīng)該要注冊(cè)需要使用的Blueprint
但是一個(gè)Blueprint并不是一個(gè)完整的應(yīng)用,它不能獨(dú)立于應(yīng)用運(yùn)行,而必須要注冊(cè)到某一個(gè)應(yīng)用中
二、使用步驟
使用藍(lán)圖可以分為三個(gè)步驟:
三、藍(lán)圖中的靜態(tài)資源和模板
指定藍(lán)圖的url前綴:在應(yīng)用中注冊(cè)藍(lán)圖時(shí)使用 url_prefix 參數(shù)指定
app.register_blueprint(user_bp, url_prefix='/user') app.register_blueprint(item_bp, url_prefix='/items')藍(lán)圖中的靜態(tài)資源
和應(yīng)用對(duì)象不同,藍(lán)圖對(duì)象創(chuàng)建時(shí)不會(huì)默認(rèn)注冊(cè)靜態(tài)目錄的路由。需要我們?cè)?創(chuàng)建時(shí)指定 static_folder 參數(shù)。
下面的示例將藍(lán)圖所在目錄下的static_admin目錄設(shè)置為靜態(tài)目錄
admin = Blueprint("admin",__name__,static_folder='static_admin') app.register_blueprint(admin,url_prefix='/admin')現(xiàn)在就可以使用 /admin/static_admin/ 訪問 static_admin 目錄下的靜態(tài)文件了。
也可通過 static_url_path 改變?cè)L問路徑
藍(lán)圖中的模板
藍(lán)圖對(duì)象默認(rèn)的模板目錄為系統(tǒng)的模版目錄,可以在創(chuàng)建藍(lán)圖對(duì)象時(shí)使用 template_folder 關(guān)鍵字參數(shù)設(shè)置模板目錄
總結(jié)
- 上一篇: 简易聊天室
- 下一篇: 可见光通信 调制解调技术 家庭机器人