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