Sqlalchemy 在查询中查找表对象

Sqlalchemy 在查询中查找表对象,sqlalchemy,Sqlalchemy,使用sqlalchemy 0.7.2 有没有办法从查询对象中找到表类?例如: q = session.query(Customers) 如何在q中找到客户?可能的不可能?是的。您需要列描述 然而,这是一条通往谈判桌的漫长道路sqlalchemy.orm.Query.column_descriptions返回一个list的dicts,描述每个查询实体,就像它被赋予Query一样。在您的示例中,只有一个实体,因此您需要该列表中的第一项。由于您感兴趣的是查询实体的类型,而不是其结构,因此需要该列表中

使用sqlalchemy 0.7.2

有没有办法从查询对象中找到表类?例如:

q = session.query(Customers)

如何在
q
中找到
客户
?可能的不可能?是的。您需要
列描述

然而,这是一条通往谈判桌的漫长道路
sqlalchemy.orm.Query.column_descriptions
返回一个
list
dict
s,描述每个查询实体,就像它被赋予
Query
一样。在您的示例中,只有一个实体,因此您需要该列表中的第一项。由于您感兴趣的是查询实体的类型,而不是其结构,因此需要该列表中的
“type”
键:

q_entity = q.column_descriptions[0]['type']
assert q_entity == Customer
访问映射类的表需要在映射器子系统中四处窥探。为此,您应该使用
manager\u of\u class
。可通过映射器从管理器中访问该表。映射的\u表属性:

from sqlalchemy.orm.attribute import manager_of_class
q_table = manager_of_class(q_entity).mapper.mapped_table
不要急于通过
Customer.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;这是特定于
sqlalchemy.ext.declarative
的,不适用于通过其他方式映射的类