blueprint(藍本/藍圖)學習筆記

在按《Flask Web開發:基於Python的Web應用開發實戰》實踐的過程當中,我一直有一個疑問,即藍本的優點在哪裏
按照書中的操做,咱們從一開始的作的html

app = Flask(__name__)

@app.route(path)
def XXX
    return OOO

彷佛只是變成了git

app = Flask(__name__)
main = Blueprint('main',__name__)
app.register_blueprint(main)


@main.route(path)
def XXX
    return OOO

按FLask官方的說法,藍本能夠很好地幫助你簡化工做,但我只感受多了幾個步驟,沒能體會到其好處
因而昨天再去調查,才瞭解到藍本的正確使用方法
《Explore Flask》中文翻譯 藍本給了我很大啓發,看完以後,我認爲《Flask Web開發》能夠補充兩點內容:github

1. 組織(網站)項目的兩種架構web

書裏的auth藍本,負責登陸等相關功能,也有專門的url前綴,因此它便是功能式,也是分區式
對沒有web開發經驗的讀者,不容易自行領悟這兩種架構,最好能提到一下flask

2. 藍本的重要功能 - 可經過藍圖提供模板過濾器、靜態文件、模板和其它功能架構

書中建立了/auth文件夾,auth藍本位於此文件夾裏
但做者沒有爲auth藍本配置template_folder參數,而是解釋了該藍本對應的templdate文件夾所在位置,即/template/auth
這點很讓人困惑,無論auth藍本是功能式仍是分區式,其相關資源應該被儘量集中到一塊兒,這點偏偏是藍本的設計初衷和優點
我以爲更好的作法是建立/auth/template文件夾,並在經過template_folder參數,定義藍本的相關資源的所在位置app

最後,總結一下
1 . 一般藍本是指繼承Blueprint的那個對象,不少時候也指代Flask中這種設計思路
2 . 藍圖的基本設想是它們記錄註冊到一個應用時的操做執行狀況。 當從一個端點到另外一端分發請求和生成 URL 時,Flask 關聯視圖函數和藍圖。 -摘自官網
3 . 藍圖定義了可用於單個應用的視圖,模板,靜態文件等等的集合 -摘自《Explore Flask》中文翻譯
4 . 咱們能夠經過藍本有效地組織項目函數

相關文章
相關標籤/搜索