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

完。

相关推荐
大模型码小白2 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧3 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
Cloud云卷云舒4 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
C^h7 小时前
python函数学习
人工智能·python·机器学习
用户71333585156247 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
Fanta丶7 小时前
4.Python set()集合、dict(字典、映射)、 数据容器的通用功能
python
决战灬7 小时前
langgraph之interrupt(理论篇)
人工智能·python·agent
兜客互动8 小时前
2026年AI关键词拓展挖掘软件,高效助力内容创作精准获流
人工智能·python
weixin_538601978 小时前
智能体测开Day30pytest测试框架
python
MC皮蛋侠客8 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv