python - 别名 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
解决方案
经过一番折腾,找到了这样的方法:
alias(TextAsFrom(text("SELECT * FROM test_table"), columns), name='some_name')
这是可能的,因为可以在此处的文档深处找到 TextAsFrom 。这种方法的一个缺点是您必须提供列对象才能使其工作(您可以在我的代码中看到列变量。)我通过仅查询表的列然后为每个列创建一个列对象来解决这个问题桌子。
干杯。
推荐阅读
- javascript - JavaScript 返回以及如何使用它来捕获错误
- swift - 将 SQLite 查询结果附加到现有模型
- shell - 无法在 sqlloader 中设置默认值
- c# - 使用 JObject.FromObject 序列化普通值和对象
- python - Pandas Groupby:如何获得不同的列值
- spring-boot - SQSListener 缺少消息 ID
- javascript - 来自数组的数组总和和一些数组空白
- python - 熊猫数据框操作
- spring-boot - OpenAPI 在 Spring Boot 应用程序中转义 JSON 响应
- databricks - 无法通过 Databricks 上的本地文件 API 访问文件