1

我正在尝试在 dotcloud 中运行 Django 服务器时找到一些方法来设置断点。

我发现了以下有希望的声音链接http://docs.dotcloud.com/tutorials/python/django/#advanced-debugging-with-werkzeug

但是,当我搜索网页时,我找不到对调试器的任何引用。

这个功能在 dotcloud 中是否仍然可用?如果没有,还有其他好的选择吗?

4

2 回答 2

1

在启用 werkzeug 调试器之前需要考虑的一些事情:

  • 当您启用 werkzeug 调试器时,任何触发异常的人都将能够访问您的代码和数据(包括数据库密码和其他敏感凭据)。请小心,不要让它启用超过必要的时间,或者添加额外的保护层来阻止未经授权的用户!
  • 完成调试后,恢复旧的 wsgi.py 文件并再次推送代码(如果愿意,可以将 werkzeug 保留在 requirements.txt 中;没关系)。

您可以执行以下操作来设置它:

1)将以下内容添加到您的 wsgi.py

# The following lines enable the werkzeug debugger
import django.views.debug

def null_technical_500_response(request, exc_type, exc_value, tb):
    raise exc_type, exc_value, tb
django.views.debug.technical_500_response = null_technical_500_response
from werkzeug.debug import DebuggedApplication
application = DebuggedApplication(application, evalex=True)

2)将以下内容添加到您的 requirements.txt

werkzeug

如果您想试用调试器的快速示例,我已经设置了交互式调试器的示例。此测试应用将仅在几天内可用。http://django-johndotcloud.dotcloud.com/raise/

参考:

于 2013-07-26T15:19:50.337 回答
1

上面答案中的代码不再适用于 Python 3。

以下是如何在 Python 3.3 中做同样的事情:

import django.views.debug

def null_technical_500_response(request, exc_type, exc_value, tb):
    raise exc_type(exc_value).with_traceback(tb)
django.views.debug.technical_500_response = null_technical_500_response

from werkzeug.debug import DebuggedApplication
application = DebuggedApplication(application, evalex=True)
于 2014-01-28T18:46:57.883 回答