To achieve the ability to customize error handling for a total of four steps:
1. Create a html page error
2. Configure settings, when DEBUG = True, it will not take effect
3. Write view
Configuring url
views.py
def page_not_found(request,exception): #404 return render(request,"blog/404.html",status=404) def page_error(exception): return render("blog/500.html",status=500) def permission_denied(request,exception): #403 return render(request, "blog/403.html",status=403) def bad_request(request,exception): #400 return render(request, "blog/400.html",status=400)
The main program the urls.py
handler400 = views.bad_request handler403 = views.permission_denied handler404 = views.bad_request handler500 = views.page_error
Then run:
You might encounter the error:
ERRORS #:?: (Urls.E007) Custom handler500 at The View 'blog.views.page_error' does not correct the Take at The Number The of arguments The (request).
Solution: Do not request view function parameters
def page_error(exception): #500 return render("blog/500.html")
# ERRORS:?: (urls.E007) The custom handler403 view 'blog.views.permission_denied' does not take the correct number of arguments (request, exception).
Solution: View function plus exception parameters, although no use
def permission_denied(request,exception): #403 return render(request, "blog/403.html")