首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从SQLAlchemy orm构建完整查询

从SQLAlchemy orm构建完整查询
EN

Stack Overflow用户
提问于 2020-12-06 22:06:31
回答 1查看 64关注 0票数 1

最终,我尝试使用熊猫read_sql,它接受一个原始的SQL查询。

我试着改变一些东西,比如;

代码语言:javascript
复制
sql = str(session.query(Post).filter(Post.user_id=1))

会产生类似的东西

代码语言:javascript
复制
select * from Post where user_id = %(user_id_1)

是否有任何方法使用已内插的参数生成该查询?

EN

Stack Overflow用户

回答已采纳

发布于 2020-12-07 13:04:02

正如您所发现的,如果我们str()一个ORM查询,就会使用我们的方言的参数占位符获得带有参数占位符的SQL命令文本:

代码语言:javascript
复制
qry = session.query(Parent).filter(Parent.id == 1)
sql = str(qry)
print(sql)
"""console output:
SELECT parent.id AS parent_id, parent.lastname AS parent_lastname, parent.firstname AS parent_firstname 
FROM parent 
WHERE parent.id = %(id_1)s
"""

如果我们希望将参数值嵌入到SQL语句中,则需要对其进行.compile()

代码语言:javascript
复制
sql_literal = qry.statement.compile(
    compile_kwargs={"literal_binds": True},
)
print(sql_literal)
"""console output:
SELECT parent.id, parent.lastname, parent.firstname 
FROM parent 
WHERE parent.id = 1
"""

(适用于有关SQL注入的标准免责声明。)

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65173585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档