flask循環(huán)導(dǎo)入的問題解決
循環(huán)導(dǎo)入是指兩個文件相互導(dǎo)入對方,形成一個導(dǎo)入循環(huán)。這會導(dǎo)致Python無法確定哪個模塊應(yīng)該先導(dǎo)入,進而出現(xiàn)錯誤。
舉個Flask中的例子:
在app.py文件中:
from views import index ?# 從views.py導(dǎo)入index視圖
app = Flask(__name__)
app.add_url_rule('/', 'index', index) ?# 注冊index視圖在views.py文件中:
from app import app ?# 從app.py導(dǎo)入app應(yīng)用
@app.route('/')
def index():
? ? return 'Hello World!'這里app.py導(dǎo)入了views.py,而views.py又導(dǎo)入了app.py,形成一個循環(huán)導(dǎo)入。
為了解決這個問題,Flask中采用了應(yīng)用工廠的模式。我們可以這樣重構(gòu)代碼:
在app.py文件中:
def create_app():
app = Flask(__name__)
app.add_url_rule('/', 'index', index)
return app
在views.py文件中:
def index():
return 'Hello World!'
然后在另一個文件中:
from app import create_app from views import index app = create_app() ?# 創(chuàng)建應(yīng)用
這樣,views.py文件就不需要導(dǎo)入app了,解決了循環(huán)導(dǎo)入的問題。
flask通過應(yīng)用工廠模式,將應(yīng)用的創(chuàng)建和視圖的注冊分開,從而避免了視圖和應(yīng)用直接相互導(dǎo)入的循環(huán)依賴問題。
到此這篇關(guān)于flask循環(huán)導(dǎo)入的問題解決的文章就介紹到這了,更多相關(guān)flask循環(huán)導(dǎo)入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python判斷all函數(shù)輸出結(jié)果是否為true的方法
在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python判斷all函數(shù)輸出結(jié)果是否為true的方法,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
Python簡單獲取網(wǎng)卡名稱及其IP地址的方法【基于psutil模塊】
這篇文章主要介紹了Python簡單獲取網(wǎng)卡名稱及其IP地址的方法,結(jié)合實例形式分析了Python基于psutil模塊針對本機網(wǎng)卡硬件信息的讀取操作簡單使用技巧,需要的朋友可以參考下2018-05-05
Python?torch.fft.rfft()函數(shù)用法示例代碼
大家應(yīng)該都知道新舊版的torch中的傅里葉變換函數(shù)在定義和用法上有所不同,下面這篇文章主要給大家介紹了關(guān)于Python?torch.fft.rfft()函數(shù)用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04

