首页 > 解决方案 > 别名 sqlalchemy.text 对象

问题描述

我试图允许用户在 UI 中输入查询,然后将其添加到我的 sqlalchemy 的 FROM 子句中。在文档中看到from_self查询对象上的函数后,我尝试了:

Query.from_statement(text("select * from test_table")).from_self()

和:

alias(text("select * from test_table"), name="some_name")

和:

text("select * from test_table").label(name="some_name")

这些都不起作用。我试图得到这样的查询:

(SELECT * FROM test_table) AS some_name

标签: pythonsqlsqlalchemy

解决方案


经过一番折腾,找到了这样的方法:

alias(TextAsFrom(text("SELECT * FROM test_table"), columns), name='some_name')

这是可能的,因为可以在此处的文档深处找到 TextAsFrom 。这种方法的一个缺点是您必须提供列对象才能使其工作(您可以在我的代码中看到列变量。)我通过仅查询表的列然后为每个列创建一个列对象来解决这个问题桌子。

干杯。


推荐阅读