Python sqlalchemy:导入模型出错
我正在用Flask和Sqlalchemy构建一个应用程序。 我的app.py文件的开头如下: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
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导入该对象:
这样,共享文件中的对象将使用应用程序上下文进行初始化,不可能循环导入。这些文件中是否使用了其他导入?