【问题标题】:How to use werkzeug debugger in dotcloud?如何在 dotcloud 中使用 werkzeug 调试器?
【发布时间】:2013-07-15 09:59:33
【问题描述】:

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

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

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

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

【问题讨论】:

标签: django dotcloud werkzeug


【解决方案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/

参考资料:

【讨论】:

    【解决方案2】:

    上面答案中的代码不再适用于 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)
    

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2012-08-17
      • 2011-10-11
      • 2013-06-19
      • 2012-04-02
      • 2013-04-10
      • 2011-10-26
      • 2013-03-01
      • 1970-01-01
      相关资源
      最近更新 更多