自定义 500 错误有时会出现空白页

Custom 500 error getting blank page sometimes

当我尝试测试自定义 500 错误页面时。如果测试成功,我会在错误日志中得到一个空白页,上面什么也没有 ("Internal Server Error")。如果发生错误,我会得到自定义错误页面。

观看次数:

def handler500(request):
    response = render_to_response("500.html")
    response.status_code = 500
    return response

def my_test_500_view(request):
    # Return an "Internal Server Error" 500 response code.
    return HttpResponse(status=500)

在Urls.py中:

my path is : path('test500/', views.my_test_500_view, name='test500')

还有:

handler500 = 'myapp.views.handler500'

如果我实际上创建了一个错误,例如通过从上面的 my_test_500_view 中删除 HttpResponse 的导入行,自定义 500 错误页面实际上加载并且我在服务器上收到此错误,即实际错误。

NameError: name 'HttpResponse' is not defined

我的测试有什么问题 returns 是空白页。我的 500 页真的有效吗?我认为它工作不正常,因为我收到一封来自 google 搜索的关于 500 错误页面失败的电子邮件警告,而且我经常收到此错误:

TypeError: view must be a callable or a list/tuple in the case of include().

请帮忙,这是怎么回事。

返回 HttpResponse(status=500) 不会导致 Django 调用 handler500 视图,它只是 returns 一个空白页面(您没有在 HttpResponse 中指定任何内容) 并在响应 headers.

上设置状态 500

如果您想测试您的 handler500,只需 raise 测试视图中的异常。任何例外都可以。