如何查看 Django 调试工具栏?
Posted
技术标签:
【中文标题】如何查看 Django 调试工具栏?【英文标题】:How do I see the Django debug toolbar? 【发布时间】:2011-09-17 10:23:09 【问题描述】:我有一个 Django 网络应用程序。我已经安装了 debug_toolbar 中间件和模块。 但是,我的 web 应用没有调试工具栏拉出。
我如何真正看到调试工具栏?我还需要做些什么吗? 我需要为我的 webapp 使用特定的模板吗?我已按照自述文件中的所有步骤进行操作,但这还不够——似乎还有其他一些依赖项,或者我缺少的其他内容。
另外,在查看我的 web 应用程序的 URL 模式集时,debug 前缀在识别的模式中不。我已经在 debug_toolbar 中的 urls.py 中添加了一个日志,以确保模块正在被激活的 debug_toolbar 应用程序加载,并且确实如此。
这让我完全迷惑了,我找不到 Google 或自述文件来说明如何才能真正显示出来,或者要求是什么,所以你能提供的任何指针都会很棒!
编辑:事实证明,我正在使用从运行浏览器的机器到运行 Django/Apache 的机器的 SSH 隧道进行测试。在这种情况下,实际看到的远程机器的 IP 地址不是我想象的那样,所以“好”IP 列表不包含浏览器的明显远程机器。解决问题就解决了!
【问题讨论】:
你的html页面有标签吗?此外,您不需要在 urls.py 中为调试工具栏添加内容。 UPD。你看过你网页的来源吗? 【参考方案1】:据我所知,您的 HTML 页面必须包含封闭的正文标记、带有content="text/html"
的元标记。
我更喜欢所有调试工具栏的设置与主要设置分开的方式。所以尝试在 settings.py 的末尾添加类似
#debug_toolbar settings
if DEBUG:
INTERNAL_IPS = ('127.0.0.1',)
MIDDLEWARE_CLASSES += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'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',
'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_CONFIG =
'INTERCEPT_REDIRECTS': False,
(编辑说明:lapis 更新了上面的配置以匹配当前(在此更新时,1.3.2)版本的 Django 调试工具栏使用的名称。根据http://django-debug-toolbar.readthedocs.org/en/0.10.0/panels.html,原始版本(使用例如 debug_toolbar.panels.sql.SQLDebugPanel 与 1.3.2 中的 debug_toolbar.panels.sql.SQLPanel)在最初回答这个问题时是正确的。)
(注意:在 Django 1.10 之后,MIDDLEWARE_CLASSES
应该是 MIDDLEWARE
。)
【讨论】:
谢谢!很高兴知道。原来我的具体问题有所不同,但这也很有帮助! @Jon,您的具体问题是什么?其他人可能有同样的问题,并且会从快速了解要检查的内容中受益。 我的实际问题显示在帖子末尾的编辑中:编辑:事实证明,我正在使用从运行浏览器的机器到运行 Django/ 的机器的 SSH 隧道进行测试阿帕奇。在这种情况下,实际看到的远程机器的 IP 地址不是我想象的那样,所以“好”IP 列表不包含浏览器的明显远程机器。解决问题就解决了! 在列表底部添加调试工具栏中间件可能会导致一些问题。 找到这篇文章并根据@JonWatte 的解决方案发表评论!事后看来很明显,但是如果您在 Docker(或其他)容器中运行 Django,则需要将容器的 IP 添加为 INTERNAL_IP。您可以进行容器检查,也可以在视图中抛出print(request.META['REMOTE_ADDR'])
并查看控制台输出以了解您的容器的 IP 地址。以上是关于如何查看 Django 调试工具栏?的主要内容,如果未能解决你的问题,请参考以下文章