django-debug-toolbar
介绍
Django 是一个 Python 重量级 Web 框架。
官网描述:Django 的使用能够容易的以更少的代码更快地构建更好的 Web 应用程序
调试与优化时,我们常常想知道比如以下问题:
- 执行了多少条 SQL 语句,花费的时间,每次每条语句查询的时间
- 渲染页面的模板是哪些,渲染时间
- 缓存是否影响性能
django-debug-toolbar 是一款非常强大的 Django 的性能检测工具
安装
下载 django-debug-toolbar
pip install django-debug-toolbar复制代码
修改 setting.py
保证开启 debug
DEBUG = True复制代码
INSTALLED_APPS
中加入 debug-toolbar
INSTALLED_APPS = ( ...... 'django.contrib.messages', 'django.contrib.staticfiles', 'library.apps.libraryConfig', 'debug_toolbar',)复制代码
添加中间件
MIDDLEWARE = [ 'debug_toolbar.middleware.DebugToolbarMiddleware', ...... ......]复制代码
配置 URL
urls.py
文件添加:
from django.conf.urls import include, urlif settings.DEBUG: import debug_toolbar urlpatterns = [ url(r'^__debug__/', include(debug_toolbar.urls)), ] + urlpatterns复制代码
运行项目
python3 manage.py runserver 0.0.0.0:8000复制代码
这里我借用了 github 上的一个 Django 项目作为实验:
效果图如下:
运作与配置
调试工具栏分两个阶段工作。首先,它在 Django 处理请求时收集数据并将此数据存储在内存中。接着,当在浏览器中打开面板时,它会获取服务器上的数据并显示它。如果在浏览站点时看到过多的 CPU 或内存消耗,则有必要考虑优化“收集”阶段。如果显示面板很慢,则有必要考虑优化“渲染”阶段。
django-debug-toolbar 默认将在过去的 10 个请求期间收集的数据保留在内存中。
可以在 setting.py
中的 DEBUG_TOOLBAR_CONFIG 中通过添加或者修改以下配置进行更改:
RESULTS_CACHE_SIZE : 10 (默认)复制代码
一些其他配置请参考:
第三方功能插件
django-debug-toolbar 允许加入第三方的面板。
目前提供了许多的插件可参考:
比如使用火焰图定位 cpu 性能问题可以使用:
-
安装
-
在
setting.py
中进行如下配置添加 'djdt_flamegraph.FlamegraphPanel' 到面板中:DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', ………………………… ………………………… 'djdt_flamegraph.FlamegraphPanel',]复制代码
-
启动项目
python3 manage.py runserver --nothreading --noreload 0.0.0.0:8000复制代码
-
效果:
正常情况应该是有火焰图的,这可能是配置或者 windows 系统的原因,但是第三方面板插件就是这么添加使用的,如果使用了 MongoDB 数据库,也有相应的第三方插件用于观察调试:
用途
主要有以下功能,功能根据自己的监控需求可以扩展
- 监控 sql 语句操作
- 监控 CPU 运行情况
- 静态文件使用情况
- 模板使用情况