我试图允许用户在 UI 中输入查询,然后将其添加到我的 sqlalchemy 的 FROM 子句中。
在 docs 中看到查询对象上的 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
最佳答案
经过一番折腾,找到了这样的方法:
alias(TextAsFrom(text("SELECT * FROM test_table"), columns), name='some_name')
这是可能的,因为可以在文档深处找到 TextAsFrom here 。此方法的一个缺点是,您必须提供列对象才能使其工作(您可以在我的代码中看到 columns 变量。)我通过仅查询表中的列,然后为每个列创建一个列对象来解决此问题 table 。
干杯。
关于python - sqlalchemy.text 对象的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53030737/