如何计算呈现 Django 管理页面所需的 SQL 查询数?

Posted

技术标签:

【中文标题】如何计算呈现 Django 管理页面所需的 SQL 查询数?【英文标题】:How can I count the number of SQL queries needed to render a Django admin page? 【发布时间】:2019-11-17 00:13:45 【问题描述】:

我使用大量内联的 django 管理站点的一部分运行缓慢,based on this question 我认为这可能与它生成的 SQL 查询的数量有关。我想计算 SQL 查询的数量,以便测试一些更改。我知道如何在自定义编写的视图上执行此操作,但我不知道如何为标准管理视图执行此操作。

以下是我测试自己观点的方法。视图名为weight_plot,应用名为runner

from django.test.client import RequestFactory
from django.conf import settings
settings.DEBUG = True
from django.db import connection
import runner.views

myview = runner.views.weight_plot
request = factory.get('/weights')
response = myview(request)

n_queries = len(connection.queries)

这行得通,现在我想看看需要多少查询才能加载https://example.com/admin/runner/MODEL_NAME/add/ 的页面。但我不知道用什么视图代替上面的myview

【问题讨论】:

使用 djabgo 调试工具栏django-debug-toolbar.readthedocs.io/en/latest 你可以使用github.com/jazzband/django-silk 【参考方案1】:

您可以将django debug toolbar 与'debug_toolbar.panels.sql.SQLPanel' 一起使用。您可以查看每个查询以及执行它们需要多长时间。

【讨论】:

以上是关于如何计算呈现 Django 管理页面所需的 SQL 查询数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用所需信息呈现表单字段

Django:测试页面是不是已重定向到所需的 url

如何从视图中呈现特定的 Django 管理页面?

查看器无法找到呈现报告所需的资源

测量 Firefox 渲染页面和评估 JavaScript 和 CSS 所需的时间

Django - 如何从多个模型中获取所需的数据