使用Werkzeug在WSGI / Passenger下调试Django - 问题

时间:2011-07-24 08:23:23

标签: django debugging passenger mod-wsgi werkzeug

我正在尝试使用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)

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

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

使用django-command-extensions很容易。 runserver_plus命令以werkzeug调试器为特色。

答案 2 :(得分:1)

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