flask藍(lán)圖指的是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、沭陽(yáng)ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的沭陽(yáng)網(wǎng)站制作公司

這篇文章將為大家詳細(xì)講解有關(guān)flask藍(lán)圖指的是什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Blueprint概念

簡(jiǎn)單來(lái)說(shuō),Blueprint 是一個(gè)存儲(chǔ)操作方法的容器,這些操作在這個(gè)Blueprint 被注冊(cè)到一個(gè)應(yīng)用之后就可以被調(diào)用,F(xiàn)lask 可以通過Blueprint來(lái)組織URL以及處理請(qǐng)求。

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

一個(gè)應(yīng)用可以具有多個(gè)Blueprint可以將一個(gè)Blueprint注冊(cè)到任何一個(gè)未使用的URL下比如 “/”、“/sample”或者子域名在一個(gè)應(yīng)用中,一個(gè)模塊可以注冊(cè)多次Blueprint可以單獨(dú)具有自己的模板、靜態(tài)文件或者其它的通用操作方法,它并不是必須要實(shí)現(xiàn)應(yīng)用的視圖和函數(shù)的在一個(gè)應(yīng)用初始化時(shí),就應(yīng)該要注冊(cè)需要使用的Blueprint

但是一個(gè)Blueprint并不是一個(gè)完整的應(yīng)用,它不能獨(dú)立于應(yīng)用運(yùn)行,而必須要注冊(cè)到某一個(gè)應(yīng)用中。

初識(shí)藍(lán)圖

藍(lán)圖/Blueprint對(duì)象用起來(lái)和一個(gè)應(yīng)用/Flask對(duì)象差不多,大的區(qū)別在于一個(gè) 藍(lán)圖對(duì)象沒有辦法獨(dú)立運(yùn)行,必須將它注冊(cè)到一個(gè)應(yīng)用對(duì)象上才能生效

使用藍(lán)圖可以分為三個(gè)步驟

from flask import Blueprint

1,創(chuàng)建一個(gè)藍(lán)圖對(duì)象admin=Blueprint('admin',__name__)
2,在這個(gè)藍(lán)圖對(duì)象上進(jìn)行操作,注冊(cè)路由,指定靜態(tài)文件夾,注冊(cè)模版過濾器

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

3,在應(yīng)用對(duì)象上注冊(cè)這個(gè)藍(lán)圖對(duì)象app.register_blueprint(admin,url\_prefix='/admin')

當(dāng)這個(gè)應(yīng)用啟動(dòng)后,通過/admin/可以訪問到藍(lán)圖中定義的視圖函數(shù)

運(yùn)行機(jī)制

藍(lán)圖是保存了一組將來(lái)可以在應(yīng)用對(duì)象上執(zhí)行的操作,注冊(cè)路由就是一種操作當(dāng)在應(yīng)用對(duì)象上調(diào)用 route 裝飾器注冊(cè)路由時(shí),這個(gè)操作將修改對(duì)象的url_map路由表然而,藍(lán)圖對(duì)象根本沒有路由表,當(dāng)我們?cè)谒{(lán)圖對(duì)象上調(diào)用route裝飾器注冊(cè)路由時(shí),它只是在內(nèi)部的一個(gè)延遲操作記錄列表defered_functions中添加了一個(gè)項(xiàng)當(dāng)執(zhí)行應(yīng)用對(duì)象的 register_blueprint() 方法時(shí),應(yīng)用對(duì)象將從藍(lán)圖對(duì)象的 defered_functions 列表中取出每一項(xiàng),并以自身作為參數(shù)執(zhí)行該匿名函數(shù),即調(diào)用應(yīng)用對(duì)象的 add_url_rule() 方法,這將真正的修改應(yīng)用對(duì)象的路由表

藍(lán)圖的url前綴

當(dāng)我們?cè)趹?yīng)用對(duì)象上注冊(cè)一個(gè)藍(lán)圖時(shí),可以指定一個(gè)url_prefix關(guān)鍵字參數(shù)(這個(gè)參數(shù)默認(rèn)是/)

在應(yīng)用最終的路由表 url_map中,在藍(lán)圖上注冊(cè)的路由URL自動(dòng)被加上了這個(gè)前綴,這個(gè)可以保證在多個(gè)藍(lán)圖中使用相同的URL規(guī)則而不會(huì)最終引起沖突,只要在注冊(cè)藍(lán)圖時(shí)將不同的藍(lán)圖掛接到不同的自路徑即可

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

注冊(cè)靜態(tài)路由

和應(yīng)用對(duì)象不同,藍(lán)圖對(duì)象創(chuàng)建時(shí)不會(huì)默認(rèn)注冊(cè)靜態(tài)目錄的路由。需要我們?cè)?創(chuàng)建時(shí)指定 static_folder 參數(shù)。

下面的示例將藍(lán)圖所在目錄下的static_admin目錄設(shè)置為靜態(tài)目錄

admin = Blueprint("admin",__name__,static_folder='static_admin')
app.register_blueprint(admin,url_prefix='/admin')

現(xiàn)在就可以使用/admin/static_admin/ 訪問static_admin目錄下的靜態(tài)文件了 定制靜態(tài)目錄URL規(guī)則 :可以在創(chuàng)建藍(lán)圖對(duì)象時(shí)使用 static_url_path 來(lái)改變靜態(tài)目錄的路由。下面的示例將為 static_admin 文件夾的路由設(shè)置為 /lib

admin = Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')
app.register_blueprint(admin,url_prefix='/admin')

設(shè)置模版目錄

藍(lán)圖對(duì)象默認(rèn)的模板目錄為系統(tǒng)的模版目錄,可以在創(chuàng)建藍(lán)圖對(duì)象時(shí)使用 template_folder 關(guān)鍵字參數(shù)設(shè)置模板目錄

admin = Blueprint('admin',__name__,template_folder='my_templates')

關(guān)于flask藍(lán)圖指的是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章題目:flask藍(lán)圖指的是什么-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://bm7419.com/article12/disodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)服務(wù)器托管、App開發(fā)、搜索引擎優(yōu)化、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作