为什么我用这个导入得到'NameError'?

时间:2014-12-24 06:28:01

标签: python flask sqlalchemy flask-sqlalchemy python-import

我正在构建一个使用Flask和SQLAlchemy的Web应用程序,但我似乎无法看到无法正确导入并正常工作的原因。

我正在尝试测试我正在构建的数据库,但我不断获得NameError

File1中:

from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
from File2 import db, data1, data2, data3

文件2:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///DB_File.db' # Uses '///' because '////' puts the file in '/' on server.
db.SQLAlchemy(app)

File2之后是一些继承db.Model的类,但我认为我不需要在这里包含这些类。

为了得到错误,我正在提取Python解释器并执行import File1。这看起来像:

>>> import File1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Tux/code/AppName/app/Util/File1.py", line 6, in <module>
    from KarmaCourtDB import db, data1, data2, data3
  File "/Tux/code/AppName/app/Util/File2.py", line 6, in <module>
    db.SQLAlchemy(app)
NameError: name 'db' is not defined

如果有人可以帮助我或指出我正确的方向,我真的很感激!此代码之前正在使用,我可以在导入后使用db.create_all()创建数据库。

1 个答案:

答案 0 :(得分:2)

db.SQLAlchemy(app)未定义db,并且仅尝试在SQLAlchemy()上运行db方法。   但是,db = SQLAlchemy(app)会定义db