django custom error handling

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")

Guess you like

Origin www.cnblogs.com/pfeiliu/p/12055823.html