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