真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Flask藍圖Blueprint的使用-創(chuàng)新互聯(lián)

Blueprint

模塊化

隨著flask程序越來越復雜,我們需要對程序進行模塊化的處理,之前學習過python的模塊化管理,于是針對一個簡單的flask程序進行模塊化處理

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、烏翠網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5網(wǎng)站設計、電子商務商城網(wǎng)站建設、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為烏翠等各大城市提供網(wǎng)站開發(fā)制作服務。

舉例來說:

我們有一個博客程序,前臺界面需要的路由為:首頁,列表,詳情等頁面

源程序app.py文件:
from flask import Flask

app=Flask(__name__)
@app.route('/')
def index():
    return 'index'
    
@app.route('/list')
def list():
    return 'list'
    
@app.route('/detail')
def detail():
    return 'detail'
    
if __name__=='__main__':
    app.run()

如果博主需要編輯博客,要進入后臺進行處理:后臺主頁,編輯,創(chuàng)建,發(fā)布博客

改進后程序:from flask import Flask

app=Flask(__name__)

@app.route('/')
def index():
    return 'index'
    
@app.route('/list')
def list():
    return 'list'
    
    
@app.route('/detail')
def detail():
    return 'detail'
    
@app.route('/')
def admin_home():
    return 'admin_home'
   
   
@app.route('/new')
def new():
    return 'new'
    
@app.route('/edit')
def edit():
    return 'edit'
  
  
 @app.route('/publish')
 def publish():
    return 'publish'
    
 if __name__=='__main__':
    app.run()

這樣就使得我們在一個py文件中寫入了很多路由,將來維護代碼會非常麻煩,此時,同學們就考慮到了模塊化的處理方式,將admin相關的路由寫到一個admin.py文件中,那我們就順著這個思路走下去

修改后的代碼:
# app.pyfrom 

flask import Flask

app=Flask(__name__)

@app.route('/')
def index():
    return 'index'
    
@app.route('/list')
def list():
    return 'list'
    
    
@app.route('/detail')
def detail():
    return 'detail'
    
if __name__=='__main__':
    app.run()



#  admin.py

@app.route('/')
def admin_home():
    return 'admin_home'
@app.route('/new')
def new():
    return 'new'
    
@app.route('/edit')
def edit():
    return 'edit'
    
 @app.route('/publish')
 def publish():
    return 'publish'

發(fā)現(xiàn)app.py文件中的app直接報錯,代碼無法繼續(xù)寫下去,所以在flask程序中,使用傳統(tǒng)的模塊化是行不通的,需要flask提供一個特有的模塊化處理方式,flask內(nèi)置了一個模塊化處理的類,即Blueprint

Blueprint概念

簡單來說,Blueprint 是一個存儲操作方法的容器,這些操作在這個Blueprint 被注冊到一個應用之后就可以被調(diào)用,F(xiàn)lask 可以通過Blueprint來組織URL以及處理請求。

Flask使用Blueprint讓應用實現(xiàn)模塊化,在Flask中,Blueprint具有如下屬性:

  • 一個應用可以具有多個Blueprint

  • 可以將一個Blueprint注冊到任何一個未使用的URL下比如 “/”、“/sample”或者子域名

  • 在一個應用中,一個模塊可以注冊多次

  • Blueprint可以單獨具有自己的模板、靜態(tài)文件或者其它的通用操作方法,它并不是必須要實現(xiàn)應用的視圖和函數(shù)的

  • 在一個應用初始化時,就應該要注冊需要使用的Blueprint

但是一個Blueprint并不是一個完整的應用,它不能獨立于應用運行,而必須要注冊到某一個應用中。

初識藍圖

藍圖/Blueprint對象用起來和一個應用/Flask對象差不多,大的區(qū)別在于一個 藍圖對象沒有辦法獨立運行,必須將它注冊到一個應用對象上才能生效

使用藍圖可以分為三個步驟

  • 1,創(chuàng)建一個藍圖對象

admin=Blueprint('admin',__name__)
  • 2,在這個藍圖對象上進行操作,注冊路由,指定靜態(tài)文件夾,注冊模版過濾器

@admin.route('/')
def admin_home():
    return 'admin_home'
  • 3,在應用對象上注冊這個藍圖對象

app.register_blueprint(admin,url\_prefix='/admin')

當這個應用啟動后,通過/admin/可以訪問到藍圖中定義的視圖函數(shù)

藍圖的url前綴

  • 當我們在應用對象上注冊一個藍圖時,可以指定一個url_prefix關鍵字參數(shù)(這個參數(shù)默認是/)

  • 在應用最終的路由表 url_map中,在藍圖上注冊的路由URL自動被加上了這個前綴,這個可以保證在多個藍圖中使用相同的URL規(guī)則而不會最終引起沖突,只要在注冊藍圖時將不同的藍圖掛接到不同的自路徑即可

  • url_for

url_for('admin.index') # /admin/

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網(wǎng)頁名稱:Flask藍圖Blueprint的使用-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/ccsddj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部