如何查看Django调试工具栏?

33 投票
1 回答
25664 浏览
提问于 2025-04-16 19:47

我有一个Django的网页应用。我安装了调试工具栏的中间件和模块。但是,我的网页应用上没有调试工具栏的弹出窗口。

我到底该怎么才能看到调试工具栏呢?我还需要做些什么吗?我需要为我的网页应用使用特定的模板吗?我已经按照说明书里的步骤做了,但似乎还不够——好像还有其他依赖或者我漏掉了什么。

另外,在查看我网页应用的URL模式时,发现debug前缀在已识别的模式中没有找到。我在debug_toolbar的urls.py里放了一个日志,以确保调试工具栏应用被激活并加载了模块,结果是加载成功了。

这让我完全困惑了,我在谷歌和说明书上找不到解决办法,也不知道该怎么做才能让它显示出来,或者有什么要求,所以如果你能给我一些建议,那就太好了!

编辑:结果我是在用SSH隧道从运行浏览器的机器连接到运行Django/Apache的机器进行测试。在这种情况下,远程机器实际看到的IP地址并不是我想的那个,所以“好”的IP列表里没有包含浏览器的远程机器。解决了这个问题后,调试工具栏就出现了!

1 个回答

52
  1. 我知道你的HTML页面必须包含一个闭合的body标签,还有一个meta标签,内容是 content="text/html"

  2. 我更喜欢把调试工具的设置和主要设置分开。所以可以试着在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。)

撰写回答