如何从sqlalchemy查询中获取表名

时间:2013-01-22 18:26:44

标签: sqlalchemy

我已经阅读了查询文档,并且没有在任何地方看到是否有办法从查询中获取表名 - 例如如果我有q = query(Users),我可以从Users退出q吗?

1 个答案:

答案 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对象的查询构建。