python - Django:来自调试页面的 ascii 回溯 (HTML)

标签 python django python-requests

我编写集成测试,它会遍历整个 HTTP 堆栈:

  • 请求库连接到http服务器
  • http 服务器将请求路由到 django 应用程序
  • Django 应用程序处理请求

如果 django 应用程序中有未捕获的异常,我会得到 HTML 调试页面,因为 settings.DEBUG 为 True。

在大多数情况下,我喜欢这个页面,但这里想要一个简单的 ascii 回溯,我可以在我们的连续应用程序工具 (Jenkins) 中显示它。

如果我使用 url 客户端库测试我的应用程序,如何获取 ascii 回溯?

最佳答案

使用 DEBUG=True 渲染此页面是在 BaseHandler 中完成的。它调用 django.views.debug.technical_500_response View 来获取所有未捕获的异常。但是当DEBUG=False时,另一个 View 被称为django.views.defaults.server_error。所以你有两个选择

  1. 编写自定义中间件来捕获所有未捕获的异常并将其呈现为纯文本 https://docs.djangoproject.com/en/1.10/topics/http/middleware/#process-exception
  2. 为此处设置的 jenkinks 创建单独的设置文件 DEBUG=False 并在 urls.py 中为 if jenkins_env 设置 handler500=定制_技术_500_响应 这将按照您需要的方式呈现您的异常 https://docs.djangoproject.com/en/1.10/ref/views/#http-internal-server-error-viewhttps://docs.djangoproject.com/en/1.10/ref/urls/#handler500

关于python - Django:来自调试页面的 ascii 回溯 (HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300498/

相关文章:

django - 检查 celery beat 是否启动并运行

python - 将 curl 调用转换为 python 请求

python - 带有请求的 POST XML 文件

Python BeautifulSoup 循环表数据

python - 将 dict 传递给 scikit learn estimator

python - 为什么 Python 在这里创建一个复数?

python - Django 模型列表顺序字段更新

Django - 将字段添加到查询集以存储计算结果

python - 使用 python request.put 上传 csv 类型数据而不读取保存的 csv 文件?

python - numpy数组的就地置换