如何检查 Django 执行的 SQL 查询?

Barbara Streisand
发布: 2024-11-02 16:59:03
原创
732 人浏览过

How Can I Inspect the SQL Queries Executed by Django?

How to Inspect SQL Queries in Django

想知道 Django 在执行查询时运行的 SQL 语句吗?答案很简单:

1. 从文档中查找解答
Django 文档的 FAQ 部分提供了直接的解答:

2. 访问数据库连接
可以通过 django.db.connection.queries 访问 SQL 查询列表:

<code class="python">from django.db import connection
print(connection.queries)</code>
登录后复制

3. 查看 Queryset 对象
Queryset 对象具有一个 query 属性,其中包含要执行的查询:

<code class="python">print(MyModel.objects.filter(name="my name").query)</code>
登录后复制

注意:输出的查询不是有效的 SQL。原因是:

“Django 从不实际插值参数:它将查询和参数分别发送给数据库适配器,由适配器执行适当的操作。”

(摘自 Django bug 报告 #17741)

因此,请勿将查询输出直接发送到数据库。

重置查询
如果你需要重置查询,比如查看给定时间段内运行的查询数量,可以使用 django.db.reset_queries:

<code class="python">from django.db import reset_queries
from django.db import connection

reset_queries()
# 运行你的查询
print(connection.queries)
>>> []</code>
登录后复制

以上是如何检查 Django 执行的 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!