W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
藍(lán)圖也可以提供資源。有時(shí)候你會(huì)只為它提供的資源而引入一個(gè)藍(lán)圖。
像常規(guī)的應(yīng)用一樣,藍(lán)圖被設(shè)想為包含在一個(gè)文件夾中。當(dāng)多個(gè)藍(lán)圖源于同一個(gè)文件 夾時(shí),可以不必考慮上述情況,但也這通常不是推薦的做法。
這個(gè)文件夾會(huì)從 Blueprint 的第二個(gè)參數(shù)中推斷出來(lái),通常是 __name__ 。 這個(gè)參數(shù)決定對(duì)應(yīng)藍(lán)圖的是哪個(gè)邏輯的 Python 模塊或包。如果它指向一個(gè)存在的 Python 包,這個(gè)包(通常是文件系統(tǒng)中的文件夾)就是資源文件夾。如果是一個(gè)模塊, 模塊所在的包就是資源文件夾。你可以訪問(wèn) Blueprint.root_path 屬性來(lái)查看 資源文件夾是什么:
>>> simple_page.root_path
'/Users/username/TestProject/yourapplication'
可以使用 open_resource() 函數(shù)來(lái)快速?gòu)倪@個(gè)文件夾打開(kāi)源文件:
with simple_page.open_resource('static/style.css') as f:
code = f.read()
一個(gè)藍(lán)圖可以通過(guò) static_folder 關(guān)鍵字參數(shù)提供一個(gè)指向文件系統(tǒng)上文件夾的路 徑,來(lái)暴露一個(gè)帶有靜態(tài)文件的文件夾。這可以是一個(gè)絕對(duì)路徑,也可以是相對(duì)于藍(lán)圖 文件夾的路徑:
admin = Blueprint('admin', __name__, static_folder='static')
默認(rèn)情況下,路徑最右邊的部分就是它在 web 上所暴露的地址。因?yàn)檫@里這個(gè)文件夾 叫做 static ,它會(huì)在 藍(lán)圖 + /static 的位置上可用。也就是說(shuō),藍(lán)圖為 /admin 把靜態(tài)文件夾注冊(cè)到 /admin/static 。
最后是命名的 blueprint_name.static ,這樣你可以生成它的 URL ,就像你對(duì)應(yīng)用 的靜態(tài)文件夾所做的那樣:
url_for('admin.static', filename='style.css')
如果你想要藍(lán)圖暴露模板,你可以提供 Blueprint 構(gòu)造函數(shù)中的 template_folder 參數(shù)來(lái)實(shí)現(xiàn):
admin = Blueprint('admin', __name__, template_folder='templates')
像對(duì)待靜態(tài)文件一樣,路徑可以是絕對(duì)的或是相對(duì)藍(lán)圖資源文件夾的。模板文件夾會(huì) 被加入到模板的搜索路徑中,但是比實(shí)際的應(yīng)用模板文件夾優(yōu)先級(jí)低。這樣,你可以 容易地在實(shí)際的應(yīng)用中覆蓋藍(lán)圖提供的模板。
那么當(dāng)你有一個(gè) yourapplication/admin 文件夾中的藍(lán)圖并且你想要渲染 'admin/index.html' 模板,且你已經(jīng)提供了 templates 作為 template_folder ,你需要這樣創(chuàng)建文件: yourapplication/admin/templates/admin/index.html
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: