在使用flask進行項目開發時,會把各個功能給拆分,通常視圖函數與配置文件是分開的,實例化flask時,會存在一個循環引入的問題(這塊兒不多說了 百度好多),藍圖就是解決循環引入的一種方案,它的作用:
可以代替flask實例app,在視圖函數中,就可以直接使用藍圖來註冊路由:
使用藍圖:
(1)安裝藍圖插件:pip install flask-blueprint
( 在視圖函數的文件中: )
(2)引入藍圖模塊:from flask import Blueprint
(3)實例化藍圖:blue = Blueprint('blue',__name__) ,
參數一: ‘blue’ 是藍圖的名字(自定義的),且藍圖名字要唯一,因爲可以註冊多個藍圖;
參數二:藍圖所在的模塊。
( 在flask初始化的基礎文件配置中註冊藍圖: )
(4)首先引入 視圖函數中的藍圖實例 from xxx import blue
(5)把藍圖註冊到flask實例中 app.register_blueprint ( blue ) 參數是藍圖實例
下邊我們把功能拆分下:
manage.py 和 user.py 是同級文件:
manage.py:
# manege.py
from flask import Flask
from user import blue# 引入user模塊中的 藍圖實例 blue
app = Flask(__name__)
app.register_blueprint(blue) # 註冊路由
if __name__ == '__main__':
app.run(debug=True)
user.py :
# 從flask中導入藍圖
from flask import Blueprint,render_template
blue = Blueprint('user',__name__) # 實例化藍圖,參數一:藍圖名字(唯一的);參數二:藍圖所在的模塊
# 使用藍圖來註冊路由
@blue.route('/')
def fn():
return render_template('html.html')
運行manage.py:
關於藍圖的應用就這麼些,以後會及時更新新知識!!!