我已经阅读了查询文档,并且没有在任何地方看到是否有办法从查询中获取表名 - 例如如果我有q = query(Users)
,我可以从Users
退出q
吗?
答案 0 :(得分:2)
请注意,像您这样的事件简单查询可能涉及其他表,然后用户也是如果它们相关的话。所以你需要迭代它。
以下内容应该是您需要的.selectable.locate_all_froms()
:
for t in query.selectable.locate_all_froms():
print repr(t)
print "table name: %s " % t.name
会产生类似的结果:
>>>Table('order', MetaData(bind=None), Column('id', Integer(), table=<order>, primary_key=True, nullable=False, default=Sequence('order_seq', metadata=MetaData(bind=None))), Column('name', String(length=127), table=<order>), schema=None)
>>>table name: order
这应该适用于Mapped对象的查询构建以及Table对象的查询构建。