django - 使用 django.db.connection.queries

标签 django connection django-queryset

我有一个运行大量 SQL 语句的 Python/Django 应用程序。出于调试目的,我想我应该为我创建一个简单的 View ,它只列出所有已运行的 SQL 语句。

根据文档,这段代码应该足以做到这一点:

    from django.db import connection
    connection.queries

只要 DEBUG 为 True。

然而,这并没有给我任何东西。 DEBUG 肯定设置为 True。这个 connection.queries 存储在什么上下文中?我的意思是,我应该能够执行一个页面,执行很多 SQL 语句,然后切换到 http://myserver/sql我创建的 View 并在那里看到那些 SQL 语句,对吗?当然使用相同的浏览器 session ......

我确实检查了 db.reset_queries() 是否在代码中的任何地方运行,似乎不是。

任何想法为什么 connection.queries 总是空的?

最佳答案

Ben 是对的,您只能看到来自当前流程的查询。您可以在同一 View 中或控制台中使用它,但不能在 View 之间使用。

查看 View 中正在执行哪些查询的最佳方法是使用 Django debug toolbar .

关于django - 使用 django.db.connection.queries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2133627/

相关文章:

python - 升级到 django 5.0 "AttributeError: ' BlankChoiceIterator' 对象没有属性 '__len__' 后出现问题"

Django:如何将部分数据从一个实例移动到另一个实例

sql-server - 如何确定 ms sql server 2005 中的打开/事件连接总数

Django:M2M 字段计数的平均值、最大值和最小值

Django:如何处理 Ajax 请求不同 View 中的缓存?

python - 生产中的 Django 的 POST 请求在计算引擎上抛出服务器错误(500)

django - CSRF验证失败。请求被中止。 CSRF cookie 未设置

c# - SignalR Core - 从 WebAPI 检查连接状态

mysql - Node js mysql结束连接

json - Django REST Framework 序列化非常慢