介绍
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": "