Flask 藍(lán)圖

什么是藍(lán)圖?

藍(lán)圖:用于實(shí)現(xiàn)單個應(yīng)用的視圖、模板、靜態(tài)文件的集合。
藍(lán)圖就是模塊化處理的類。
簡單來說,藍(lán)圖就是一個存儲操作路由映射方法的容器,主要用來實(shí)現(xiàn)客戶端請求和URL相互關(guān)聯(lián)的功能。 在Flask中,使用藍(lán)圖可以幫助我們實(shí)現(xiàn)模塊化應(yīng)用的功能。

藍(lán)圖的運(yùn)行機(jī)制:

藍(lán)圖是保存了一組將來可以在應(yīng)用對象上執(zhí)行的操作。注冊路由就是一種操作,當(dāng)在程序?qū)嵗险{(diào)用route裝飾器注冊路由時,這個操作將修改對象的url_map路由映射列表。當(dāng)我們在藍(lán)圖對象上調(diào)用route裝飾器注冊路由時,它只是在內(nèi)部的一個延遲操作記錄列表defered_functions中添加了一個項(xiàng)。當(dāng)執(zhí)行應(yīng)用對象的 register_blueprint() 方法時,應(yīng)用對象從藍(lán)圖對象的 defered_functions 列表中取出每一項(xiàng),即調(diào)用應(yīng)用對象的 add_url_rule() 方法,這將會修改程序?qū)嵗穆酚捎成淞斜怼?/p>

藍(lán)圖的使用:

一、創(chuàng)建藍(lán)圖對象。

# Blueprint必須指定兩個參數(shù),admin表示藍(lán)圖的名稱,__name__表示藍(lán)圖所在模塊
admin = Blueprint('admin',__name__)

二、注冊藍(lán)圖路由。

@admin.route('/')
def admin_index():
    return 'admin_index'

三、在程序?qū)嵗凶栽撍{(lán)圖。

#注冊藍(lán)圖,第一個參數(shù)admin是藍(lán)圖對象,url_prefix參數(shù)默認(rèn)值是根路由,如果指定,會在藍(lán)圖注冊的路由url中添加前綴。
app.register_blueprint(admin,url_prefix='/admin')

程序執(zhí)行文件/test4/test.py

from flask import Flask
#導(dǎo)入藍(lán)圖對象
from login import logins
from user import users

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

#注冊藍(lán)圖,第一個參數(shù)logins是藍(lán)圖對象,url_prefix參數(shù)默認(rèn)值是根路由,如果指定,會在藍(lán)圖注冊的路由url中添加前綴。
app.register_blueprint(logins,url_prefix='')
app.register_blueprint(users,url_prefix='')

if __name__ == '__main__':
    print(app.url_map)      
    app.run(debug=True)

創(chuàng)建藍(lán)圖:/test4/user.py

from flask import Blueprint,render_template
#創(chuàng)建藍(lán)圖,第一個參數(shù)指定了藍(lán)圖的名字。
users = Blueprint('user',__name__)

@users.route('/user')
def user():
    return render_template('user.html')

創(chuàng)建藍(lán)圖:/test4/login.py

from flask import Blueprint,render_template
#創(chuàng)建藍(lán)圖
logins = Blueprint('login',__name__)

@logins.route('/login')
def login():
    return render_template('login.html')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 為什么學(xué)習(xí)藍(lán)圖? 我們學(xué)習(xí)Flask框架,是從寫單個文件,執(zhí)行hello world開始的。我們在這單個文件中可以...
    __method__閱讀 384評論 0 3
  • 藍(lán)圖 Blueprint 模塊化 隨著flask程序越來越復(fù)雜,我們需要對程序進(jìn)行模塊化的處理,之前學(xué)習(xí)過pyth...
    Gavininn閱讀 48,586評論 1 12
  • 解釋1: 允許將應(yīng)用組織為模塊,每個模塊有自洽的 MVC,開發(fā)者做些工作可以使模塊間依賴盡可能少,必要時可以按 b...
    大詩兄_zl閱讀 2,346評論 1 1
  • 本文首發(fā)于公眾號:Python 編程與實(shí)戰(zhàn) 我們都知道 flask 是一個輕量級的 web 框架,相對于其他同類型...
    GoPython閱讀 726評論 4 3
  • 毒辣的太陽大早醒來 成團(tuán)的白云簇?fù)砥渑?倔強(qiáng)的烏云偏要作對 豆大的雨點(diǎn)從天而降 林中的工匠成落湯雞 覓食的小鳥慌慌...
    Yumi玉米粒閱讀 759評論 6 9

友情鏈接更多精彩內(nèi)容