Flask SQLAlchemy怎么查看参数化查询的实际SQL语句

Flask SQLAlchemy操作数据库时,不管是直接用sql语句还是用orm,有的时候为了调试,都需要知道参数化查询的sql语句生成的实际sql语句是什么。

比如:

python 复制代码
params = {'org': '123'}

# 如下是参数化查询sql语句,如果sql语句很长,
# 想知道实际的sql语句,即:
# "select name from table1 where org='123'"
# 怎么办?
sql = "select name from table1 where org=:org"
db.session.execute(sql, params).fetchall()

经过层层调试,发现实际语句在 pymysql/cursors.py 中的 Cursor.mogrify 方法中生成(其他mysql驱动如mysqlclient,情况也类似),在 return query 打个断点,调式时就能看到实际的sql语句了:

Cursor.mogrify 方法所在文件(pymysql包下的cursors.py文件):

完。

相关推荐
小宁爱Python1 天前
从零搭建 RAG 智能问答系统3:聊天信息持久化和登录注册
python
天才少女爱迪生1 天前
LLVM(Low Level Virtual Machine)介绍
python·数据挖掘
碳酸的唐1 天前
A* 工程实践全指南:从启发式设计到可视化与性能优化
python·神经网络
倔强青铜三1 天前
苦练Python第64天:从零掌握多线程,threading模块全面指南
人工智能·python·面试
Q26433650231 天前
【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
海奥华21 天前
SQLEXPLAIN 详解
数据库·mysql
计算机毕业设计木哥1 天前
计算机毕设选题推荐:基于Hadoop和Python的游戏销售大数据可视化分析系统
大数据·开发语言·hadoop·python·信息可视化·spark·课程设计
小蕾Java1 天前
PyCharm 2025:使用图文教程!
ide·python·pycharm
至此流年莫相忘1 天前
配置Python环境之Conda
python·conda