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

完。

相关推荐
虚拟搬运工几秒前
xformers造成comfyu启动失败
python·comfyui
Hello.Reader1 分钟前
PyFlink DataStream Operators 算子分类、函数写法、类型系统、链路优化(Chaining)与工程化踩坑
前端·python·算法
齐 飞4 分钟前
快速删除mysql表中所有数据-TRUNCATE TABLE
数据库·mysql
Learner12 分钟前
Python函数
开发语言·python
万行18 分钟前
机器学习&第五章生成式生成器
人工智能·python·算法·机器学习
_李小白18 分钟前
【Android FrameWork】延伸阅读:AMS 的 handleApplicationCrash
android·开发语言·python
万行35 分钟前
机器学习&第一章
人工智能·python·机器学习·flask·计算机组成原理
2301_7973122638 分钟前
学习java37天
开发语言·python
计算机学姐1 小时前
基于SpringBoot的汉服租赁系统【颜色尺码套装+个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
WJSKad12351 小时前
果园树干识别与定位_faster-rcnn_x101-32x4d_fpn_1x_coco改进实践
python