一组小工具,用于协助Django开发
项目描述
简介
debugtools模块提供了一些易于使用的调试工具,以协助Django开发。它具有以下功能:
一个用于打印上下文的模板标签。
一个XViewMiddleware变体,可以查看用于渲染页面的哪个视图和模板。
一个用于django-debug-toolbar的面板,显示用于渲染页面的哪个视图和模板。
一个jQuery debug()函数。
安装
首先安装该模块,最好在虚拟环境中安装。可以从PyPI安装
pip install django-debugtools
或者当前文件夹可以安装
pip install .
配置
将模块添加到已安装的应用程序中
INSTALLED_APPS += ( 'debugtools', )
从Django 1.9开始,可以使用{% load debugtools_tags %}或向设置中添加以下内容
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
# ...
],
'builtins': [ # Add this section
"debugtools.templatetags.debugtools_tags", # Add this line
],
},
},
]
或者,当您使用local.py设置文件时
TEMPLATES[0]['OPTIONS']['builtins'] += [
"debugtools.templatetags.debugtools_tags", # enables {% print %}
]
功能
打印模板标签
在Django模板中,可以使用以下代码:
{% print variable1 variable2 %}
这将打印出特定的变量,例如{% print original %}
如果没有给出变量(例如{% print %}),则显示所有上下文变量
模板上下文变量以自定义的 pprint.pformat 格式打印,便于阅读。请注意,不需要 {% load %} 标签;为了方便调试,已将 {% print %} 函数添加到模板内置函数中。
打印查询模板标签
为了方便,还有一个基于 http://djangosnippets.org/snippets/93/ 的 {% print_queries %} 标签。
对于更复杂的调试,您可能想使用 django-debug-toolbar 来完成这项工作。
调试工具栏面板
将以下设置添加到您的 django-debug-toolbar 配置中
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', 'debugtools.panels.ViewPanel', # Add this one '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', )
jQuery 调试打印
将以下内容添加到页面中
<script type="text/javascript" src="{{ STATIC_URL }}debugtools/jquery.debug.js"></script>
现在您可以将 jQuery 选择器上下文打印到控制台
$("#foo").children('li').debug().addClass('bar');
这将打印匹配的 <li> 元素到控制台,同时显示当前的 jQuery 选择器。可选地,可以在 debug() 调用中包含一个前缀。
$("#foo").debug("at baz: ").addClass('bar');
X-视图中间件
作为 django-debug-toolbar 面板的替代方案,您也可以添加 XViewMiddleware。添加以下设置
INTERNAL_IPS = ( '127.0.0.1', ) MIDDLEWARE_CLASSES += ( 'debugtools.middleware.XViewMiddleware', )
来自内部 IP 的所有请求或由管理员用户发起的请求都将带有 X-View 标头和 X-View-Template 标头。在 Firebug 控制台或 Chrome 网络检查器中,您可以看到哪个视图和模板处理了当前请求
还显示替代模板,以防视图允许使用不同的名称覆盖模板。
打印标签示例
例如,当使用以下代码时
{% print original %} {% print inline_admin_formset %} {% for inline_admin_form in inline_admin_formset %} {% print inline_admin_form %} {% print inline_admin_form.form.name %} {% endfor %}
它打印上下文值,这有助于了解模板上下文
这使得理解代码提供给模板的内容变得容易得多。
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪一个,请了解有关 安装包 的更多信息。
源分发
构建分发
django-debugtools-2.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 085f7bc62a3a5c81c7a0d8643dbc7dfd991cfdffabe7a6d6fbecad0e346608ff |
|
MD5 | 0c0a2100bb6488b834ba342ee921056f |
|
BLAKE2b-256 | 46f1e25cc343eec590a1e0f77619dc004b08641fde29459e64f00d6f01b0f2ac |