Django4.0 URL调度器-错误处理
当 Django 找不到所匹配的请求 URL 时,或引发了异常时,Django 会调用一个错误处理视图。
这些情况发生时使用的视图通过4个变量指定。它们的默认值应该满足大部分项目,但是通过赋值给它们以进一步的自定义也是可以的。
这些值得在你的根URLconf
中设置。在其它URLconf
中设置这些变量将不会生效果。
它们的值必须是可调用的或者是表示视图的Python 完整导入路径的字符串,可以方便地调用它们来处理错误情况。
这些值是:
- handler400 -- 一个可调用对象,或者一个代表视图的完整 Python 导入路径的字符串,如果 HTTP 客户端发送了一个引起错误条件的请求,并且响应的状态码为 400,那么就会调用该视图。默认情况下,这是
django.views.defaults.bad_request()
。如果你实现了自定义视图,请确保它接受 request
和 exception
参数,并返回一个 HttpResponseBadRequest
。 - handler403 -- 一个可调用对象,或者一个代表视图的完整 Python 导入路径的字符串,如果用户没有访问资源所需的权限,那么就会调用该视图。默认情况下,这是
django.views.defaults.permission_denied()
。如果你实现了一个自定义视图,请确保它接受 request
和 exception
参数,并返回一个 HttpResponseForbidden
。 - handler404 -- 一个可调用对象,或者一个代表视图的完整 Python 导入路径的字符串,如果没有任何 URL 模式匹配,那么就会调用该视图。默认情况下,这是
django.views.defaults.page_not_found()
。如果你实现了自定义视图,请确保它接受 request
和 exception
参数,并返回一个 HttpResponseNotFound
。 - handler500 -- 一个可调用对象,或者一个代表视图的完整 Python 导入路径的字符串,在服务器出错时会被调用。当你在视图代码中出现运行时错误时,就会发生服务器错误。默认情况下,这是
django.views.defaults.server_error()
。如果你实现了自定义视图,请确保它接受一个 request
参数,并返回一个 HttpResponseServerError
。