【问题标题】:Returning Django exceptions in plain text以纯文本形式返回 Django 异常
【发布时间】:2011-08-23 19:40:51
【问题描述】:

Django 在 DEBUG 模式下捕获的错误以 HTML 格式的代码返回,以供浏览器显示。我希望这些错误以纯文本(或 JSON)显示。有没有办法做到这一点?

【问题讨论】:

  • 所以你想显示一个自定义错误,但只有当 DEBUG = True 时?
  • 如果设置了 ADMINS 并填写了电子邮件设置,当 DEBUG 关闭时,Djano 将向管理员发送一封带有明文错误的电子邮件。请参阅:docs.djangoproject.com/en/dev/howto/error-reporting/… Docs 还说“服务器错误电子邮件是使用日志框架发送的,因此您可以通过自定义日志配置来自定义此行为”,因此您可以通过这种方式将它们转储到文件中。不过,从您的问题来看,我认为您需要将纯文本错误显示在浏览器中。
  • @sandinmyjoints 电子邮件选项很好,但在这种情况下,Django 被用作 API,我希望前端开发人员能够立即识别错误,而不是等待对于电子邮件
  • 这能回答你的问题吗? How to obtain a plain text Django error page

标签: django debugging error-handling


【解决方案1】:

我认为您可以修改此文件中的模板:https://code.djangoproject.com/browser/django/trunk/django/views/debug.py

TECHNICAL_500_TEMPLATETECHNICAL_404_TEMPLATEEMPTY_URLCONF_TEMPLATE 更改为显示明文。

【讨论】:

  • 这看起来很有希望,但这需要修补一些 Django 源代码,必须有一种方法可以在项目级别做到这一点......
  • 可能,但我认为可能没有。 Django 的docs 非常全面,他们没有提到类似的东西。从github 分叉 Django 并不是什么大不了的事,因为您可以通过合并继续升级,而且您不会进行大量更改。只是我的 0.02 美元!祝你好运。
【解决方案2】:

不是直接的解决方案,但也许将 django-sentry 加入混合中可以让您对报告的错误做更多的事情?我自己还是新手。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2019-04-26
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多