Python、Flask、SQLAlchemy:无法从模型导入
我有个奇怪的问题 我正在用SQLAlchemy构建一个烧瓶应用程序。我有一个模型文件,即models.py。我有一个用户模型 如果我打开“views.py”并插入一个字符串Python、Flask、SQLAlchemy:无法从模型导入,python,import,sqlalchemy,models,Python,Import,Sqlalchemy,Models,我有个奇怪的问题 我正在用SQLAlchemy构建一个烧瓶应用程序。我有一个模型文件,即models.py。我有一个用户模型 如果我打开“views.py”并插入一个字符串 import models 然后使用用户模型,如 u=models.User.query.filter_by(name='John',password='Doe').first() 一切正常 但是如果我把“导入模型”改为 Python崩溃并说: ImportError: cannot import name User
import models
然后使用用户模型,如
u=models.User.query.filter_by(name='John',password='Doe').first()
一切正常
但是如果我把“导入模型”改为
Python崩溃并说:
ImportError: cannot import name User
这怎么可能呢?您很可能有一个循环导入;您的应用程序模块:
# app.py
import models
...
def doSomething():
models.User....
但是您的模型
模块也会导入应用程序
import app
class User:
...
由于模型
导入应用
,并且应用
导入模型
,python在应用
尝试导入模型时尚未完成导入模型;用户
类尚未定义。或者中断循环导入(确保模型
不会导入任何同样导入模型
)的内容,或者您只需处理模型。用户
而不是应用程序中较短的用户
,而不是
from models import User
使用
在这种情况下,您将模型导入到views.py
中,因此,如果您需要来自模型的类,请从views.py
导入它,循环导入问题将得到解决 嗯,我的views.py
有一行db=SQLAlchemy(app)
。下一行是导入模型。然后,在models.py
中,第一行是令人困惑的答案。谢谢,你节省了我的时间:)。继续做好工作,为我工作是有原因的。我很想知道为什么会这样?我也想知道同样的道理?为什么导入工作?也为我工作!谢谢
from models import User
from models import *