flask循環(huán)導(dǎo)入的問(wèn)題解決
循環(huán)導(dǎo)入是指兩個(gè)文件相互導(dǎo)入對(duì)方,形成一個(gè)導(dǎo)入循環(huán)。這會(huì)導(dǎo)致Python無(wú)法確定哪個(gè)模塊應(yīng)該先導(dǎo)入,進(jìn)而出現(xiàn)錯(cuò)誤。
舉個(gè)Flask中的例子:
在app.py文件中:
from views import index ?# 從views.py導(dǎo)入index視圖 app = Flask(__name__) app.add_url_rule('/', 'index', index) ?# 注冊(cè)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,形成一個(gè)循環(huán)導(dǎo)入。
為了解決這個(gè)問(wèn)題,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!'
然后在另一個(gè)文件中:
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)入的問(wèn)題。
flask通過(guò)應(yīng)用工廠模式,將應(yīng)用的創(chuàng)建和視圖的注冊(cè)分開(kāi),從而避免了視圖和應(yīng)用直接相互導(dǎo)入的循環(huán)依賴問(wèn)題。
到此這篇關(guān)于flask循環(huán)導(dǎo)入的問(wèn)題解決的文章就介紹到這了,更多相關(guān)flask循環(huán)導(dǎo)入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)可視化 pyecharts實(shí)現(xiàn)各種統(tǒng)計(jì)圖表過(guò)程詳解
這篇文章主要介紹了Python數(shù)據(jù)可視化 pyecharts實(shí)現(xiàn)各種統(tǒng)計(jì)圖表過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python django下載大的csv文件實(shí)現(xiàn)方法分析
這篇文章主要介紹了python django下載大的csv文件實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Django框架下載csv大文件的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-07-07詳解centos7+django+python3+mysql+阿里云部署項(xiàng)目全流程
這篇文章主要介紹了詳解centos7+django+python3+mysql+阿里云部署項(xiàng)目全流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Python實(shí)現(xiàn)將Excel轉(zhuǎn)換成為image的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)將Excel轉(zhuǎn)換成為image的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python jenkins 打包構(gòu)建代碼的示例代碼
這篇文章主要介紹了python jenkins 打包構(gòu)建代碼的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Python matplotlib實(shí)時(shí)畫圖案例
這篇文章主要介紹了Python matplotlib實(shí)時(shí)畫圖案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04python循環(huán)控制之break和continue流程控制語(yǔ)句
這篇文章主要介紹了python循環(huán)控制之break流程控制語(yǔ)句,Python中提供了兩個(gè)關(guān)鍵字用來(lái)控制循環(huán)語(yǔ)句,分別是break和continue,本文都有介紹,需要的朋友可以參考一下2022-03-03python爬蟲之你好,李煥英電影票房數(shù)據(jù)分析
這篇文章主要介紹了python爬蟲之你好,李煥英電影票房數(shù)據(jù)分析,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲的小伙伴們有一定的幫助,需要的朋友可以參考下2021-04-04