Python、Flask、SQLAlchemy:无法从模型导入

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

我有个奇怪的问题

我正在用SQLAlchemy构建一个烧瓶应用程序。我有一个模型文件,即models.py。我有一个用户模型

如果我打开“views.py”并插入一个字符串

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 *