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

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

比如:

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文件):
在这里插入图片描述
完。

相关推荐

  1. 结构查询语言SQL作用

    2024-01-10 06:04:02       30 阅读
  2. 结构查询语言SQL

    2024-01-10 06:04:02       21 阅读
  3. SQL查询语句

    2024-01-10 06:04:02       51 阅读
  4. 数据库中关于结构查询语言sql简单介绍

    2024-01-10 06:04:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-10 06:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-10 06:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-10 06:04:02       82 阅读
  4. Python语言-面向对象

    2024-01-10 06:04:02       91 阅读

热门阅读

  1. 【数值分析】逼近,正交多项式

    2024-01-10 06:04:02       52 阅读
  2. 【Spring Boot 3】【数据源】自定义JPA数据源

    2024-01-10 06:04:02       66 阅读
  3. 云原生专栏

    2024-01-10 06:04:02       57 阅读
  4. 第二百五十五回

    2024-01-10 06:04:02       61 阅读
  5. WPF入门到跪下 第八章 动画-基础

    2024-01-10 06:04:02       41 阅读
  6. R语言学习入门(一)

    2024-01-10 06:04:02       47 阅读
  7. 实验8 分析HTTP协议和DNS

    2024-01-10 06:04:02       56 阅读