Flask藍(lán)圖學(xué)習(xí)教程
前序
1、藍(lán)圖
在一個(gè)Flask 應(yīng)用項(xiàng)目中,如果業(yè)務(wù)視圖過多,可否將以某種方式劃分出的業(yè)務(wù)單元單獨(dú)維護(hù),將每個(gè)單元用到的視圖、靜態(tài)文件、模板文件等獨(dú)立分開?
例如從業(yè)務(wù)角度上,可將整個(gè)應(yīng)用劃分為用戶模塊單元、商品模塊單元、訂單模塊單元,如何分別開發(fā)這些不同單元,并最終整合到一個(gè)項(xiàng)目應(yīng)用中?
2、藍(lán)圖介紹
在Flask中,使用藍(lán)圖Blueprint來分模塊組織管理。
藍(lán)圖實(shí)際可以理解為是一個(gè)存儲(chǔ)一組視圖方法的容器對(duì)象,其具有如下特點(diǎn):
一個(gè)應(yīng)用可以具有多個(gè)Blueprint
可以將一個(gè)Blueprint注冊到任何一個(gè)未使用的URL下比如 “/user”、“/goods”
Blueprint可以單獨(dú)具有自己的模板、靜態(tài)文件或者其它的通用操作方法,它并不是必須要實(shí)現(xiàn)應(yīng)用的視圖和
函數(shù)的
在一個(gè)應(yīng)用初始化時(shí),就應(yīng)該要注冊需要使用的Blueprint
但是一個(gè)Blueprint并不是一個(gè)完整的應(yīng)用,它不能獨(dú)立于應(yīng)用運(yùn)行,而必須要注冊到某一個(gè)應(yīng)用中。
一、創(chuàng)建藍(lán)圖包
因?yàn)樵谝粋€(gè)項(xiàng)目中業(yè)務(wù)較多,可以創(chuàng)建一個(gè)藍(lán)圖包,里面static目錄文件、templates目錄文件,初始化的_init_.py
如圖:
二、使用步驟
1、在初始化__init_.py 文件創(chuàng)建藍(lán)圖
1、_init.py 創(chuàng)建藍(lán)圖
2、其中:static_folder=‘sta’ 是當(dāng)前藍(lán)圖包靜態(tài)文件訪問路徑,template_folder=‘tmp’ 是當(dāng)前藍(lán)圖包templates下目錄的訪問路徑。
3、 要引入當(dāng)前目錄的視圖函數(shù)文件
#這個(gè)文件創(chuàng)建藍(lán)圖 from flask import * order_bp=Blueprint('order',__name__,static_folder='sta',template_folder='tmp') #引入視圖函數(shù) from . import order_func
2、創(chuàng)建視圖函數(shù)文件
1、在新建一個(gè)創(chuàng)立視圖函數(shù)的文件
2、 這個(gè)文件要導(dǎo)入建好的藍(lán)圖
#這個(gè)文件創(chuàng)建視圖函數(shù) #導(dǎo)入藍(lán)圖 from . import order_bp @order_bp.route('/co') def test1(): return "hello python"
3、調(diào)用問題
1、當(dāng)在應(yīng)用程序需要用到某個(gè)視圖函數(shù)時(shí),可以通過藍(lán)圖進(jìn)行調(diào)用。
2、注意:from order import order_bp 中的order是我自己命名的藍(lán)圖包名字,order_bp是藍(lán)圖名字
3、 url_prefix=‘/order’ 是設(shè)置客戶端(瀏覽器)訪問服務(wù)器的前綴 后面加上訪問視圖函數(shù)的裝飾器。
from flask import Flask app = Flask(__name__) #導(dǎo)入藍(lán)圖 from order import order_bp app.register_blueprint(order_bp,url_prefix='/order') if __name__ == '__main__': app.run()
客戶端(瀏覽器)訪問路徑展示
4、訪問靜態(tài)文件
總結(jié)
- 在應(yīng)用開發(fā)當(dāng)中要用到功能非常多,以此對(duì)應(yīng)的視圖函數(shù)就很多。
- 因此通過創(chuàng)建不同的藍(lán)圖下的不同的視圖函數(shù),可以快速精準(zhǔn)的定位到某個(gè)視圖函數(shù)。
到此這篇關(guān)于Flask藍(lán)圖學(xué)習(xí)教程的文章就介紹到這了,更多相關(guān)Flask藍(lán)圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用CNN實(shí)現(xiàn)對(duì)時(shí)序數(shù)據(jù)進(jìn)行分類
這篇文章主要為大家詳細(xì)介紹了Python如何利用CNN實(shí)現(xiàn)對(duì)時(shí)序數(shù)據(jù)進(jìn)行分類功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02Python數(shù)據(jù)類型詳解(三)元祖:tuple
本文給大家介紹的是Python數(shù)據(jù)類型中的元祖(tuple),簡單的說Tuple,與列表一樣,元素也是不可變的,但與列表不同,在一個(gè)元祖可以包含不同類型的元素2016-05-05Python批量解壓文件中出現(xiàn)中文亂碼的原因及解決方法
這篇文章主要給大家記一次Python批量解壓文件遇中文亂碼及解決過程,文中有詳細(xì)的圖解及代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01