django自定義錯誤處理


要實現自定義錯誤處理的功能,總共分4步: 

1.創建html錯誤頁 

2.配置settings ,當DEBUG=True,則不會生效

3.編寫視圖 

4.配置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)
主程序下urls.py

handler400 = views.bad_request handler403 = views.permission_denied handler404 = views.bad_request handler500 = views.page_error

然后運行:

 

 

 過程中可能遇到的報錯:

# ERRORS:?: (urls.E007) The custom handler500 view 'blog.views.page_error' does not take the correct number of arguments (request).
解決:視圖函數中不要request參數
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).

 解決:視圖函數中加上exception參數,雖然沒什么用

def permission_denied(request,exception):
    #403
    return render(request, "blog/403.html")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM