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语句了:文章来源:https://www.toymoban.com/news/detail-792796.html
Cursor.mogrify 方法所在文件(pymysql包下的cursors.py文件):
完。文章来源地址https://www.toymoban.com/news/detail-792796.html
到了这里,关于Flask SQLAlchemy怎么查看参数化查询的实际SQL语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!