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