django debug_怎么调试debug

django debug_怎么调试debug介绍 Django 框架的调试工具栏使用 django debug toolbar 库 是一组可配置的面板 显示有关当前请求 响应的各种调试信息 时 显示有关面板内容的更多详细信息 应用 1 安装 pip install django debug toolbar 2 settings 配置 先决条件 必须确认 django contrib staticfiles 正确安装并且启用

介绍

Django框架的调试工具栏使用django-debug-toolbar库,是一组可配置的面板,显示有关当前请求/响应的各种调试信息,点击时,显示有关面板内容的更多详细信息。

应用

1. 安装

pip install django-debug-toolbar

2. settings配置

先决条件:必须确认django.contrib.staticfiles 正确安装并且启用

INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
'debug_toolbar',
]

STATIC_URL = '/static/'

3. urls.py路由配置

在主应用下的根urls.py中的最下面添加如下代码:

if "debug_toolbar" in settings.INSTALLED_APPS:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns

说明

这里使用 '\__debug__' 作为路径访问,可以设置任意的路径名,只要能轻易区分一般应用

如果放在子应用的urls.py下的话,会抛出NoReverseMatch 'djdt' is not a registered namespace异常

4. 启动中间件

调试工具栏主要在中间件中实现:

MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]

注意:这个中间件尽可能配置到最前面,但是,必须要要放在处理编码和响应内容的中间件后面,比如我们要是使用了GZipMiddleware,就要把DebugToolbarMiddleware放在GZipMiddleware后面

5. 设置内部IP

调试工具栏只会允许特定的ip访问,在settings的INTERNAL_IPS中配置

INTERNAL_IPS = [
# ...
'127.0.0.1',
# ...
]

6. 访问

访问应用的任意页面,在页面的右上角会有一个 DJDT的悬浮窗


点击后就会出现调试工具栏

7. 面板功能

调试工具栏上有多个功能,下面介绍作用

Versions :代表是哪个django版本

Timer : 用来计时的,判断加载当前页面总共花的时间

Settings : 读取django中的配置信息

Headers : 当前请求头和响应头信息

Request: 当前请求的相关信息(视图函数,Cookie信息,Session信息等)

SQL:查看当前界面执行的SQL语句

StaticFiles:当前界面加载的静态文件

Templates:当前界面用的模板

Cache:缓存信息

Signals:信号

Logging:当前界面日志信息

Redirects:当前界面的重定向信息

8. 面板配置

django-debug-toolbar默认使用全面板,默认的全局配置在 debug_toolbar.settings.CONFIG_DEFAULTS

PANELS_DEFAULTS = [
"debug_toolbar.panels.versions.VersionsPanel",
"debug_toolbar.panels.timer.TimerPanel",
"debug_toolbar.panels.settings.SettingsPanel",
"debug_toolbar.panels.headers.HeadersPanel",
"debug_toolbar.panels.request.RequestPanel",
"debug_toolbar.panels.sql.SQLPanel",
"debug_toolbar.panels.staticfiles.StaticFilesPanel",
"debug_toolbar.panels.templates.TemplatesPanel",
"debug_toolbar.panels.cache.CachePanel",
"debug_toolbar.panels.signals.SignalsPanel",
"debug_toolbar.panels.logging.LoggingPanel",
"debug_toolbar.panels.redirects.RedirectsPanel",
]

如果不使用默认的全功能面板,那么在settings中配置 DEBUG_TOOLBAR_PANELS 即可,示例如下:

DEBUG_TOOLBAR_PANELS = [
"debug_toolbar.panels.timer.TimerPanel",
"debug_toolbar.panels.headers.HeadersPanel",
"debug_toolbar.panels.request.RequestPanel",
"debug_toolbar.panels.templates.TemplatesPanel",
]

9. 工具栏配置

在settings中配置 DEBUG_TOOLBAR_CONFIG 覆盖默认配置,分为2部分,一部分适用于工具栏本身,另一部分适用于某些特定面板

DEBUG_TOOLBAR_CONFIG = {
# Toolbar options
"DISABLE_PANELS": {"debug_toolbar.panels.redirects.RedirectsPanel"},
"INSERT_BEFORE": "
编程小号
上一篇 2025-05-27 12:11
下一篇 2025-06-01 15:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/127345.html