第一次使用 Flask 創建 Web 應用程式。我在創建資料庫時遇到了問題。我收到錯誤:
ImportError: cannot import 'app' from partially initialized module 'website' (most likely due to circular import). (換句話說,我什至無法運行應用程式來創建資料庫;我的問題主要在于讓應用程式運行)。
這可能是由于回圈匯入造成的,但我一直在關注教程,即使在完整的專案重組之后,我的教程似乎也不起作用。出于好奇,這就是它現在的樣子:
C:\...flaskProject
static/
templates/
about-page.html
blog-page.html
home-page.html
photography-page.html
website/
__init__.py
modules.py
routes.py
app.py
問題代碼可能在于app.py和__init__.py,因此,按以下順序:
from website import app
if __name__ == '__main__'
app.run(debug=True)
和
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from website import routes
app = Flask(__name__)
# *!* app.config['SECRET_KEY'] =
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite///:database.db'
# app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
我一直在運行命令python app.py、set FLASK_APP=app.py->flask run和set FLASK_APP=__init__.py-> flask run。我在這里(以及在 python 檔案中)看到了很多關于回圈匯入的內容,這對我來說很有意義。我只是不認為它發生在這里,但它很可能在我不知道的情況下發生。static/一旦我從選單中選擇了 Flask,我還查看了我在 PyCharm 中啟動這個專案時包含的檔案,但我相信目前這與我無關。關于回圈進口索賠的任何想法?我如何修復它,以及任何對我將來在該領域有幫助的資訊?任何幫助表示贊賞。非常感謝。
uj5u.com熱心網友回復:
由于部分初始化的模塊應用程式(回圈匯入),您收到回圈匯入錯誤。從app.py它呼叫 開始from website import app,它就會初始化網站模塊,即__init__.py. 在 中__init__.py,第 3 行from website import routes引起了麻煩。您的網站模塊尚未完成匯入,您正在嘗試從這個部分初始化的模塊網站匯入路由。
您的第 3 行__init__.py應該替換為 -
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from website.routes import route1, route2 # This is how it should be
app = Flask(__name__)
# *!* app.config['SECRET_KEY'] =
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite///:database.db'
# app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
現在,它不會再次嘗試初始化網站模塊。但是,如果您from website import app在routes.py檔案中,那么我建議將此匯入移動到app.py檔案中。
from website import app
from website.routes import route1, route2
if __name__ == '__main__':
app.run(debug=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364831.html
