藍圖的定義
藍圖 /Blueprint 是 Flask 應(yīng)用程序組件化的方法,可以在一個應(yīng)用內(nèi)或跨越多個項目共用藍圖。使用藍圖可以極大地簡化大型應(yīng)用的開發(fā)難度,也為 Flask 擴展 提供了一種在應(yīng)用中注冊服務(wù)的集中式機制。
藍圖的應(yīng)用場景
(1) 把一個應(yīng)用分解為一個藍圖的集合。這對大型應(yīng)用是理想的。一個項目可以實例化一個應(yīng)用對象,初始化幾個擴展,并注冊一集合的藍圖。
(2) 以 URL 前綴和/或子域名,在應(yīng)用上注冊一個藍圖。 URL 前綴/子域名中的參數(shù)即成為這個藍
圖下的所有視圖函數(shù)的共同的視圖參數(shù)(默認情況下)。
(3) 在一個應(yīng)用中用不同的 URL 規(guī)則多次注冊一個藍圖。
(4) 通過藍圖提供模板過濾器、靜態(tài)文件、模板和其它功能。一個藍圖不一定要實現(xiàn)應(yīng)用或者視圖函數(shù)。
(5) 初始化一個 Flask 擴展時,在這些情況中注冊一個藍圖。
藍圖的缺點
不能在應(yīng)用創(chuàng)建后撤銷注冊一個藍圖而不銷毀整個應(yīng)用對象。
使用藍圖的三個步驟
(1) 創(chuàng)建一個藍圖對象
(2) 在這個藍圖對象上進行操作 ,例如注冊路由、指定靜態(tài)文件夾、注冊模板過濾器...
(3) 在應(yīng)用對象上注冊這個藍圖對象