我有一个运行大量 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/