如何查看Django调试工具栏?
我有一个Django的网页应用。我安装了调试工具栏的中间件和模块。但是,我的网页应用上没有调试工具栏的弹出窗口。
我到底该怎么才能看到调试工具栏呢?我还需要做些什么吗?我需要为我的网页应用使用特定的模板吗?我已经按照说明书里的步骤做了,但似乎还不够——好像还有其他依赖或者我漏掉了什么。
另外,在查看我网页应用的URL模式时,发现debug前缀在已识别的模式中没有找到。我在debug_toolbar的urls.py里放了一个日志,以确保调试工具栏应用被激活并加载了模块,结果是加载成功了。
这让我完全困惑了,我在谷歌和说明书上找不到解决办法,也不知道该怎么做才能让它显示出来,或者有什么要求,所以如果你能给我一些建议,那就太好了!
编辑:结果我是在用SSH隧道从运行浏览器的机器连接到运行Django/Apache的机器进行测试。在这种情况下,远程机器实际看到的IP地址并不是我想的那个,所以“好”的IP列表里没有包含浏览器的远程机器。解决了这个问题后,调试工具栏就出现了!
1 个回答
我知道你的HTML页面必须包含一个闭合的body标签,还有一个meta标签,内容是
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
。)