【问题标题】:Debugging Django with Werkzeug under WSGI/Passenger - problems在 WSGI/Passenger 下使用 Werkzeug 调试 Django - 问题
【发布时间】:2011-10-11 22:53:25
【问题描述】:

我正在尝试使用 werkzeug 调试器,但尽管按照建议安装它,但我只是得到正常的 django 错误页面。

来自我的passenger_wsgi.py:

import django.core.handlers.wsgi
from werkzeug.debug import DebuggedApplication

application = django.core.handlers.wsgi.WSGIHandler()
application = DebuggedApplication(application, evalex=True)

我在很大程度上受限于通过乘客而不是 manage.py 运行我的 django 应用程序(即使是在开发中)。

有什么方法可以让 werkzeug 调试器在这些条件下工作?例如,我可以阻止 Django 自己拦截错误吗?

【问题讨论】:

    标签: django debugging passenger mod-wsgi werkzeug


    【解决方案1】:

    您可以使用 DEBUG_PROPAGATE_EXCEPTIONS 设置禁用 Django 异常处理。然后 Werkzeug 将能够处理它。

    【讨论】:

      【解决方案2】:

      使用django-command-extensions 很容易。 runserver_plus 命令具有 werkzeug 调试器。

      【讨论】:

      • 谢谢,但我不能使用 manage.py。我必须通过乘客运行我的应用程序。
      • 我能不能假设您只需要在与乘客无关的开发环境中进行调试?
      • 不,由于各种原因,我在限制我使用乘客的托管环境中开发。
      • 顺便说一句,您不打算在您的生产系统上使用 werkzeug 调试器,对吧?它允许代码执行..
      【解决方案3】:

      这是因为 Django 早在 django.core.handlers.wsgi.WSGIHandler() 返回任何东西之前就拦截了任何错误并将它们转换为错误页面。您将无法让它以这种方式工作,因为您的 Django 站点中的应用程序错误永远不会一直传播到顶层。

      【讨论】:

      • 好的,有什么办法可以让两者一起工作,还是我不走运?
      • 你可以,只是不是你现在做的那样。谷歌搜索一下会产生“voices.canonical.com/isd/?p=116”。如果你看的话,肯定还有其他信息。
      • 谢谢 - 我假设您没有任何想要分享的方法的经验?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2011-02-13
      • 2018-03-05
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多