顯然,如果所有的路由都直接註冊在app應用對象上,不僅會讓我們的程序結構非常混亂,還會大大增加程序的系統內存消耗。至於怎麽救,先賣了再說。
那麽如何用藍圖模塊化管理程序路由呢?
可以看到app文件夾下有三個文件夾main,auth,api,裏面包含了查看功能。如果不確定flask項目結構,可以切換到Flask項目結構。
初始化。這三個文件夾裏的py都定義為藍圖。主文件夾下舉個例子。
在應用程序對象應用程序上註冊藍圖對象。
第壹個參數是blueprint對象。
以下是可選參數。
1 . static _文件夾:
與application對象不同,blueprint對象在創建時默認不註冊靜態目錄的路由。我們需要在創建時指定static_folder參數。如圖所示,我們將參數設置為‘static’,這是項目結構中的靜態文件夾。
所以我們可以使用address /static/main/layout.css來訪問靜態目錄中的css、js和image文件。
2.url前綴
默認值是'/' # # # # #用demo.py解釋壹下(這個演示應該也是在虛擬環境下運行的)。
顯然,這個參數是要加上相對路徑的前綴。
當然,渲染成模板的時候不壹定要自己添加。
中間那麽多。讓我們看看main/views.py中的內容
這個例子是直接在views.py中添加url前綴
在這個文件下,可以通過操作blueprint對象創建壹個路由,並通過render_template()方法渲染頁面。
我壹般習慣先做好前面的所有工作,再去前端HTML文件設置路由跳轉。例如:
Url_for是通過endpoint查詢Url地址,然後找到view函數。
根據我個人的理解,先說藍圖的運行機制: