Я знаю, что это уже было решено, но я решил это немного по-другому и хотел ответить, если он помогает другим.
Первоначально мой код приложения (например, my_app.py
) имел это line:
db = SQLAlchemy(app)
И поэтому в моем models.py
у меня было:
from my_app import db
class MyModel(db.Model):
# etc
, следовательно, круговые ссылки при использовании MyModel
в my_app
. Я обновил это, так что models.py имел это:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() # note no "app" here, and no import from my_app above
class MyModel(db.Model):
# etc as before
, а затем в my_app
:
from models import db, MyModel # importing db is new
# ...
db.init_app(app) # call init_app here rather than initialising db here