5

我已经通读了查询文档,如果有办法从查询中获取表名,我看不到任何地方——例如,如果我有q = query(Users),我可以从中Users退出q吗?

4

1 回答 1

4

请注意,像您这样的事件简单查询可能涉及其他表,然后是用户,以防它们相关。所以你需要迭代它。

以下应该做你需要的.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 对象构建查询。

于 2013-01-22T18:50:29.143 回答