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

完。

相关推荐
blackA_1 小时前
数据库MySQL学习——day4(更多查询操作与更新数据)
数据库·学习·mysql
MinggeQingchun2 小时前
Python - 爬虫-网页解析数据-库lxml(支持XPath)
爬虫·python·xpath·lxml
qq_441996053 小时前
为何 RAG 向量存储应优先考虑 PostgreSQL + pgvector 而非 MySQL?
数据库·mysql·postgresql
Python自动化办公社区3 小时前
Python 3.14:探索新版本的魅力与革新
开发语言·python
AI军哥4 小时前
MySQL8的安装方法
人工智能·mysql·yolo·机器学习·deepseek
weixin_贾4 小时前
最新AI-Python机器学习与深度学习技术在植被参数反演中的核心技术应用
python·机器学习·植被参数·遥感反演
张槊哲4 小时前
函数的定义与使用(python)
开发语言·python
程序员不想YY啊4 小时前
MySQL元数据库完全指南:探秘数据背后的数据
数据库·mysql·oracle
船长@Quant4 小时前
文档构建:Sphinx全面使用指南 — 实战篇
python·markdown·sphinx·文档构建
偶尔微微一笑5 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器