当前位置 - 股票行情交易網 - 企業服務 - Flask組件化開發:Blueprint(藍)

Flask組件化開發:Blueprint(藍)

我們在管理路由的時候,是直接在app對象上進行的路由設置的,像下面這樣:

顯然,如果所有的路由都直接在app應用對象上直接註冊,不僅使我們的程序結構十分混亂,而且大大增加了程序的系統內存消耗。至於如何節約,先賣個關子。

那麽使用藍圖進行程序路由的模塊化管理是如何做到的呢?

可以看到在 app 文件夾下有三個文件夾 main auth 以及 api 內含有視圖函數。如果不太清楚flask項目結構的,可以轉 Flask項目結構

這三個文件夾中的 init .py都是進行藍圖的定義的。舉 main 文件夾下的例子

在應用對象app上 註冊 藍圖對象。

第壹個參數是 藍圖對象

隨後的都是 可選參數

1.static_folder :

和應用對象不同,藍圖對象創建時不會默認註冊靜態目錄的路由。需要我們在 創建時指定static_folder 參數。如圖中我們設置參數為 ‘static’ ,也就是項目結構中的 static 文件夾。

這樣我們可以使用地址 /static/main/layout.css 訪問static目錄下的css、js、image文件了

2.url_prefix

默認的值為 '/' ######用壹個demo.py來解釋吧( 這個demo也要在虛擬環境下運行

顯而易見,這個參數就是增加相對路徑的前綴的

當然也可以不用直接在渲染成模板時自己加上。

中間穿插了這麽多,再看壹下main/views.py裏邊的內容吧

這個例子就是直接在views.py裏邊直接加url前綴。

這個文件下就是在藍圖對象上進行操作即創建路由 ,通過 render_template() 方法將頁面渲染出來。

我壹般習慣將前邊所有的工作做完之後再去前端HTML文件中去設置路由的跳轉。例如:

url_for是通過endpoint查詢url地址,然後找視圖函數

根據個人的理解來說壹下藍圖的運行機制: