2014-09-30 56 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 *