蓝图的使用
藍圖是什么:
官方解釋:藍圖的基本概念是:在藍圖被注冊到應用之后,所要執行的操作的集合。當分配請求 時, Flask 會把藍圖和視圖函數關聯起來,并生成兩個端點之前的 URL 。
藍圖 (Blueprint) 是 Flask 程序的模塊化處理機制,它是一個存儲視圖方法的集合,Flask 程序通過 Blueprint 來組織 URL 以及處理請求。
Flask 的 Blueprint 具有如下屬性:
- 一個項目可以具有多個 Blueprint;
- Blueprint 可以單獨具有自己的模板、靜態文件的目錄;
- 在應用初始化時,注冊需要使用的 Blueprint。
如果還不清楚藍圖是什么的話沒關系,先往下看,看完就知道為什么需要藍圖及其用法。
為什么需要藍圖:
在我之前關于flask的博客中,所有的頁面或者說視圖方法都是在app.py里實現的。但是當我們的項目大起來。如果你所有的頁面都是在app.py里實現,那你起碼得幾萬行,而這顯然是不合理和不方便的。因此我們可以使用藍圖來避免這一問題。
使用:
假如我要實現三個頁面:book、course、user。
首先在項目文件下新建一個package暫且命名為apps.py
?
在apps.py里新建三個py文件就記為我們的頁面名字吧:book.py user.py course.py
?我們在course.py中寫入如下代碼:
?首先我們導入了Blurprint藍圖函數,bp = Blueprint(...)第一個參數為一個字符串是藍圖的名稱,我們這里使用文件名,第二個參數?__name__是該藍圖所在的模塊名,第 3 個參數是指定頁面的 URL 前綴為 ‘/course’,它會影響路由中路徑的設置。
然后注意我們的視圖函數的裝飾器變成bp.route了,下面是一個簡單的視圖函數返回“課程列表”到頁面。
book.py和user.py也是類似,不再過多闡述:
然后我們在app.py中先將apps包里我們定義的三個藍圖導入進來,再使用app.register_blueprint?來注冊藍圖,注冊完后就可以實現藍圖的功能了。
上面我們已經完成了基本的工作,我們可以運行查看結果:
在終端里flask run并查看各個頁面:
?可見,使用藍圖達到了我們的目的,以后我們關于用戶的代碼可以全部在user.py里實現...
不僅如此,我們還可以在藍圖中使用模板、靜態文件等操作:
?
?
?
?
總結
- 上一篇: 如果长期玩手机用计算机打字,长期玩手机带
- 下一篇: 【英语语法】:冠词