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