如何在dotcloud中使用werkzeug调试器?

时间:2013-07-17 01:49:06

标签: django dotcloud werkzeug

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

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

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

这个功能在dotcloud中仍然可用吗?如果没有,还有另一个好的选择吗?

2 个答案:

答案 0 :(得分: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/

参考文献:

答案 1 :(得分: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)