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文件):

完。

相关推荐
重生之我要当编程大佬3 分钟前
关于打不开pycharm的解决方法(一)
ide·python·pycharm
深圳佛手9 分钟前
AI 编程工具Claude Code 介绍
人工智能·python·机器学习·langchain
apocelipes38 分钟前
POSIX兼容系统上read和write系统调用的行为总结
linux·c语言·c++·python·golang·linux编程
暴风鱼划水1 小时前
算法题(Python)数组篇 | 6.区间和
python·算法·数组·区间和
Derrick__11 小时前
Web Js逆向——加密参数定位方法(Hook)
python·js
林北北的霸霸1 小时前
django初识与安装
android·mysql·adb
南汐汐月1 小时前
重生归来,我要成功 Python 高手--day33 决策树
开发语言·python·决策树
lzjava20241 小时前
Spring AI使用知识库增强对话功能
人工智能·python·spring
B站_计算机毕业设计之家2 小时前
深度血虚:Django水果检测识别系统 CNN卷积神经网络算法 python语言 计算机 大数据✅
python·深度学习·计算机视觉·信息可视化·分类·cnn·django
Q_Q5110082852 小时前
python+django/flask的校园活动中心场地预约系统
spring boot·python·django·flask·node.js·php