系统地讲解Django开发的基础知识, 高阶知识。关注微信公众号[薯条编程],领取该教程的PDF电子书:《Python web开发-django从入门到精通》。
12.5.1 第三方调试工具:django-debug-toolbar
在以上四节的教程中,薯条老师介绍了如何在django中进行性能优化,在着手进行性能优化的工作之前,我们需要一款debug工具来分析程序的执行性能。django的第三方调试工具:django-debug-toolbar,提供了一个可视化的debug界面,通过该工具,我们可以查看程序的执行过程、运行时间,以及数据库中的耗时查询,以此来分析程序的性能瓶颈,以便做进一步的优化。
12.5.2 django-debug-toolbar的安装与配置
直接在命令行中执行pip install django-debug-toolbar来进行安装。安装成功以后,需要在项目中进行配置,请同学们按照以下步骤来进行配置:
(1) 配置INSTALLED_APPS
打开settigns.py,在INSTALLED_APPS中分别添加django.contrib.staticfiles与debug_toolbar:
INSTALLED_APPS = [ # ... 'django.contrib.staticfiles', # ... 'debug_toolbar', ] STATIC_URL = '/static/'
(2) 配置debug_toolbar中间件
打开settings.py,在全局变量MIDDLEWARE中添加debug_toolbar中间件:
MIDDLEWARE = [ # 添加debug_toolbar中间件 'debug_toolbar.middleware.DebugToolbarMiddleware', ]
在添加debug_toolbar中间件时,尽可能配置到最前面,同时必须将其放置在处理编码和响应内容的中间件后面,比如使用了GZipMiddleware来对响应的内容进行压缩,那么需要把debug_toolbar配置在GZipMiddleware的后面。
(3) 配置内部IP地址
打开settings.py,定义INTERNAL_IPS列表变量,在列表中添加debug-toolbar运行环境的ip地址:
INTERNAL_IPS = [ # debug_toolbar运行在本地 '127.0.0.1', ]
(4) 配置debug_toolbar路由
打开urls.py,添加调试模式下的debug路由:
from django.conf import settings from django.urls import include, path # 下面的代码写在urlpatterns变量的后面 if settings.DEBUG: import debug_toolbar urlpatterns = [path('__debug__/', include(debug_toolbar.urls)),] + urlpatterns
12.5.3 使用django-debug-toolbar进行调试
配置完毕以后,打开页面即可看到页面右侧边栏多了个工具条:
点击该工具条,会出现一个调试面板:
点击面板中的菜单,即可查看对应的调试信息,例如点击Request菜单,可以看到服务器的请求响应情况:
点击SQL菜单,可以查看程序中的SQL语句执行情况:
12.5.4 配置django-debug-toolbar的调试面板
通过DEBUG_TOOLBAR_PANELS变量可以在调试面板中配置菜单。DEBUG_TOOLBAR_PANELS的默认配置:
DEBUG_TOOLBAR_PANELS = [ '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', 'debug_toolbar.panels.profiling.ProfilingPanel', ]
在settings.py中修改DEBUG_TOOLBAR_PANELS,可以改变调试面板的顺序,以及对调试面板进行添加和删除。现在通过DEBUG_TOOLBAR_PANELS来添加一个第三方的面板:Template Profiler。该面板会显示与模板渲染相关的执行信息。
请同学们按照以下步骤进行操作:
(1) 安装django-debug-toolbar-template-profiler
直接使用pip来安装:pip install django-debug-toolbar-template-profiler
(2) 打开settings.py,配置INSTALLED_APPS
在INSTALLED_APPS中添加template_profiler_panel:
INSTALLED_APPS = [ #... "debug_toolbar", "template_profiler_panel", # ... ]
(3) 在DEBUG_TOOLBAR_PANELS中添加template_profiler_panel:
DEBUG_TOOLBAR_PANELS = [ # ... "template_profiler_panel.panels.template.TemplateProfilerPanel", ]
(4) 打开浏览器,在面板中找到Template Profiler:
关注微信公众号:薯条编程,公众号后台回复"Python资料",免费领取Python电子书,以及学习Python视频课程。