kur*_*tgn 4 python import sqlalchemy models
我有一个奇怪的问题.
我正在使用SQLAlchemy构建Flask应用程序.我有一个模型文件,即models.py.我有一个用户模型.
如果我打开"views.py"并插入一个字符串
import models
Run Code Online (Sandbox Code Playgroud)
然后使用用户模型
u=models.User.query.filter_by(name='John',password='Doe').first()
Run Code Online (Sandbox Code Playgroud)
一切正常.
但如果不是"进口模式",我会说
from models import User
Run Code Online (Sandbox Code Playgroud)
Python崩溃并说:
ImportError: cannot import name User
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
你最有可能进行循环导入; 你的,让我们说'app'模块:
# app.py
import models
...
def doSomething():
models.User....
Run Code Online (Sandbox Code Playgroud)
但你的models模块也进口app
import app
class User:
...
Run Code Online (Sandbox Code Playgroud)
由于models导入app和app导入models,python还没有models在app尝试导入时完成导入models.User; 在User类尚未定义(还).要么打破循环导入(确保models不导入任何也导入的东西models),要么你只需要使用models.User而不是更短的Userin app.
代替
from models import User
Run Code Online (Sandbox Code Playgroud)
使用
from models import *
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4695 次 |
| 最近记录: |