python新建一个类有map成员_python – SQLAlchemy Automap不创建没有主键的表的类

在使用 SQLAlchemy 的 Automap 功能时,作者发现不是所有在 metadata.tables 中的表都会被映射为类。尽管没有错误,但无法通过 Base 访问某些类,比如 Example_Table。Example_Table 没有主键,可能这就是 Automap 不创建此类的原因。问题在于 Automap 是否要求表必须有主键才能创建对应的类。
摘要由CSDN通过智能技术生成

我正在使用具有automap功能的SQL Alchemy v(0.9.1).这允许我自动创建类和关系.

http://docs.sqlalchemy.org/en/rel_0_9/orm/extensions/automap.html

我遇到的问题是,当使用automap_base时,我看到并不是所有在metadata.tables列表中可用的表被映射.

准备时没有错误,除了在调用automap_base()之后我无法从Base访问该类(例如Base.classes.Example_Table)

from sqlalchemy import create_engine, MetaData

from sqlalchemy.orm import create_session

from sqlalchemy.ext.automap import automap_base

engine = create_engine("mysql+mysqldb://")

Base = automap_base()

Base.prepare(engine, reflect = True)

session = create_session(bind = engine)

然后,我运行发现元数据中的所有表不存在类(我在元数据中不使用= []参数)

for mappedclass in Base.classes:

print mappedclass

for mdtable in metadata.tables:

print mdtable

只有找到Example_Table(具有以下创建语法)没有类

CREATE TABLE `Example_Table` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`attributeType` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3290719 DEFAULT CHARSET=latin1

即Base.class.Example_Table返回以下错误

---------------------------------------------------------------------------

AttributeError Traceback (most recent call last)

in ()

7 type(metadata.tables)

8

----> 9 Base.classes.Example_Table

/usr/local/lib/python2.7/site-packages/sqlalchemy/util/_collections.pyc in __getattr__(self, key)

172 return self._data[key]

173 except KeyError:

--> 174 raise AttributeError(key)

175

176 def __contains__(self, key):

AttributeError: Example_Table

我不认为这个问题是因为我的Example_Table名称中有一个下划线.

我认为这个问题与我的Example_Table没有主键有关. Example_Table仅用于链接其他两个表.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值