在外部模块中声明基本变量时出现上述错误。 Base变量在模块db_connect.py中声明,如本文所述:How to create ForeignKey relationship across two different files
在 db_connect.py 中,我已声明了以下内容:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
Engine = create_engine('postgresql://postgres:pass@server:5432/mydb')
Base = declarative_base()
在 data_template.py 中,我有以下内容:
from db_connect import Engine, Base
class DataTemplate (Base):
__tablename__ = 'data_template'
id = Column(Integer(5), primary_key=True, autoincrement = True)
version = Column(String(3), nullable = False)
specification = Column(String(1), nullable = False)
__table_args__ = (UniqueConstraint("version", "specification"), )
Base.metadata.create_all()
问题一:
通过上面的描述,创建的表格很好但是我在 data_template.py:Base.metadata.create_all()中突出显示了错误: Undefined variable from导入:元数据为什么会发生错误?
问题二:
load_file.py 中的我必须从 data_template.py 模块导入DataTemplateFile类。如果我不进行此导入,则会出现错误
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'load_file.data_template_file_id' could not find table 'data_template_file' with which to generate a foreign key to target column 'id'
但是,当我导入如下时,它可以工作并创建表但是我在Eclipse中得到一个“警告”指示,指示DataTemplateFile导入未使用。然而,如果我不导入它,代码就会失败,如上所述。
from data_template import DataTemplateFile
class LoadFile (Base):
__tablename__ = "load_file"
id = Column(Integer(10), primary_key = True)
file_name = Column(String(250), nullable = False, unique = True)
data_template_file_id = Column(Integer, ForeignKey('data_template_file.id'), nullable = False)
loadfile = relationship("DataTemplateFile",backref=backref('LoadFile', order_by=id))
答案 0 :(得分:0)
所以路径是:
C:\的Python \ Python27 \ LIB \站点包\ SQLAlchemy的
这对我有用。
乔
答案 1 :(得分:0)
您必须将flask.ext添加到Forced Builtins