如何查看Django调试工具栏?

Jon*_*tte 28 python django django-debug-toolbar

我有一个Django webapp.我已经安装了debug_toolbar中间件和模块.但是,我的webapps没有调试工具栏拉出.

我如何实际看到调试工具栏?还有什么我需要做的吗?我是否需要为我的webapp使用特定模板?我已经按照自述文件中的所有步骤进行了操作,但这还不够 - 似乎还有一些其他依赖项,或者其他我缺少的东西.

此外,望着URL模式集合了我的web应用程序时,将调试前缀不是公认的模式中找到.我在debug_toolbar中放入了一个urls.py日志,以确保激活的debug_toolbar应用程序正在加载模块.

这让我完全神秘,我找不到谷歌或自述文件来做这个实际显示,或者要求是什么,所以你能提供的任何指针都会很棒!

编辑:事实证明,我正在使用SSH隧道从运行浏览器的机器到运行Django/Apache的机器进行测试.在这种情况下,远程机器实际看到的IP地址不是我想象的那样,因此"好"IP列表不包含浏览器的明显远程机器.修复那个解决了问题!

ton*_*ony 48

  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,
        }
    
    Run Code Online (Sandbox Code Playgroud)

(编辑注释:lapis更新了上面的配置以匹配当前使用的名称(在本次更新时,1.3.2)Django调试工具栏的版本.根据http://django-debug-toolbar.readthedocs.org /en/0.10.0/panels.html,原始版本(使用例如debug_toolbar.panels.sql.SQLDebugPanel vs debug_toolbar.panels.sql.SQLPanel,如1.3.2)在原始答案时是正确的.)

(注意:在Django 1.10之后,MIDDLEWARE_CLASSES应该是MIDDLEWARE.)

  • 在列表底部添加调试工具栏中间件可能会导致一些问题. (7认同)
  • 发现这篇文章并根据@JonWatte发表评论,基于这里的解决方案!事后看来很明显,但如果你在Docker(或其他)容器中运行Django,则需要将容器的IP添加为INTERNAL_IP.您可以进行容器检查,也可以在视图中抛出`print(request.META ['REMOTE_ADDR'])`并查看控制台输出以了解容器的IP地址. (4认同)
  • 我的实际问题显示在帖子末尾的编辑中:编辑:事实证明,我正在使用SSH隧道从运行浏览器的机器到运行Django/Apache的机器进行测试.在这种情况下,远程机器实际看到的IP地址不是我想象的那样,因此"好"IP列表不包含浏览器的明显远程机器.修复那个解决了问题! (3认同)