Python sqlalchemy:导入模型出错

Python sqlalchemy:导入模型出错,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,我正在用Flask和Sqlalchemy构建一个应用程序。 我的app.py文件的开头如下: from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app) from models import User from app import db class User .... 我的models.py是这样的: from flask imp

我正在用Flask和Sqlalchemy构建一个应用程序。 我的app.py文件的开头如下:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
from models import User
from app import db
class User
....
我的models.py是这样的:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
from models import User
from app import db
class User
....
因此,当我运行python app.py时,会出现一个错误,提示无法导入用户名User。我猜某处有一个循环导入,我不知道如何修复它

但是如果我创建另一个文件run.py

from app import app
app.run()

一切都很完美。但为什么这会打破循环进口?我不明白这一点。

你说得对:这是一个循环导入问题

我解决这个问题的方法是在根目录中有另一个文件,一个shared.py文件。在该文件中,创建数据库对象

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
在app/init.py中,不要创建新的db对象。相反,你应该这样做

from shared import db
db.init_app(app)
在要使用db对象的任何位置(包括模型文件),从shared.py导入该对象:


这样,共享文件中的对象将使用应用程序上下文进行初始化,不可能循环导入。

这些文件中是否使用了其他导入?