Sqlalchemy:来自导入的未定义变量:metad

2024-04-25 06:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在一个外部模块中声明基变量时,得到了上面的错误。基变量在模块db中声明_连接.py如本文所述:How to create ForeignKey relationship across two different files

In分贝_连接.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()

数据中_模板.py我有以下内容:

^{pr2}$

问题一:

使用上面的方法,创建了表,这很好,但是我在数据中获得了元数据_模板.py: Base.metadata.create_全部()突出显示错误:来自导入的未定义变量:metadata为什么会出现该错误?在

问题二:

负荷_文件.py我必须从数据导入DataTemplateFile类_模板.py模块。如果我不做这个导入,我会得到一个错误

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))

Tags: 模块to数据frompyimportid声明
2条回答

其实我也有同样的问题。我通过进入sitepackages文件夹并将sqlalchemy文件夹提升到一个级别来解决这个问题。在

所以路径是:

C:\Python\Python27\Lib\site-packages\sqlalchemy

这对我很有帮助。在

你必须补充烧瓶.ext被迫进入建筑

相关问题 更多 >