2014-09-30 59 views
2

我有一个奇怪的问题。Python,Flask,SQLAlchemy:无法从模型导入

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

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

import models 

,然后使用用户模型像

u=models.User.query.filter_by(name='John',password='Doe').first() 

一切工作正常。

但如果不是 “进口车型” 我把

from models import User 

Python的崩溃,并说:

ImportError: cannot import name User 

怎么可能呢?

回答

3

你很可能有一个循环导入;你,可以说, '应用' 模块:

# app.py 
import models 
... 

def doSomething(): 
    models.User.... 

但你models模块还进口app

import app 

class User: 
    ... 

因为models进口app,并app进口models,蟒蛇尚未完成在点app进口models试图导入models.User;尚未定义User类(尚未)。要么打破循环进口(确保models不导入任何也导入models的东西),或者您只需要与models.User合作,而不是app中较短的User

+0

好,我的'views.py'具有线'分贝= SQLAlchemy的(表观)'。下一行是'import models'。然后,在'models.py'中,第一行是 – kurtgn 2014-10-02 04:48:47

2

代替

from models import User 

使用

from models import *