flask Blueprint藍圖
阿新 • • 發佈:2018-12-26
首先要了解藍圖的作用,模擬場景在團隊開發過程中團隊每個人都在寫自己負責的功能模組,那多個py檔案模板,我們如果完成後需要執行是不是要執行多個服務?但是我們的專案是一個整體,而不是零散的,所以我們怎麼把很多py檔案用一個run()啟動呢,也就是怎麼把他們構造在一起直接啟動整體呢。其實並不難以前我們是不是也接觸過類似的比如 Flask裡的網頁模板(render_template)中的繼承(Block)和包含(include)機制,同理 Blueprint 藍圖也是類似的功能。
首先是主框架:
#使用藍圖需要依賴Blueprint庫 from flask import Flask,Blueprint#匯入自定義的藍圖文集,from py檔名 import建立好的藍圖名 from day6_part import mypart app = Flask(__name__) app.config.from_pyfile('config.ini') #註冊定義好的藍圖檔案,url_prefix給藍圖url加字首,這裡的字首是必須的不然會跟主框架路由衝突 app.register_blueprint(mypart,url_prefix='/part') @app.route('/') def index(): return "這是首頁" if __name__ == "__main__": app.run()
需要植入到主框架的功能模組py檔案
from flask import Flask,Blueprint app = Flask(__name__) app.config.from_pyfile('config.ini') #註冊藍圖,主框架呼叫的是這裡賦值的變數名Blueprint內傳入以後會用到的藍圖名和Flask物件的內建變數 mypart = Blueprint('mypart',__name__) # 這裡我們就直接取裝飾藍圖即可 @mypart.route('/') def index(): return "這裡是藍圖的副功能"