Django 自定義404 500等錯誤頁面的實現(xiàn)
在開發(fā)網(wǎng)站的過程中,404,500錯誤,是不可避免產(chǎn)生的。一旦產(chǎn)生了這種錯誤,很多可以通過web server 來處理。比如使用 apache 的定義或者nginx 的定義。都可以定向處理。如果單純在django里面可以處理嗎?肯定是可以的,django提供了相應的處理方式,只要在django里
起步
面定義了,無論你今后部署在apache下或者是nginx下,都是生效的。
要想自定義錯誤頁面,需要關(guān)閉調(diào)試模式 DEBUG = False ,因為調(diào)試模式的錯誤頁面是開發(fā)下會顯示錯誤信息的。
有兩種方法可以實現(xiàn)自定義的錯誤頁面。
方法一:創(chuàng)建特定命名的模板文件
這是一種非常簡單的方式。在項目模板文件夾 templates 中創(chuàng)建命名為 404.html 的模板文件即可。
這個方式是其實是借用了 Django 的模板查找規(guī)則進行的。源碼在 django.views.defaults.py 中:
ERROR_404_TEMPLATE_NAME = ’404.html’def page_not_found(request, exception, template_name=ERROR_404_TEMPLATE_NAME): ...
總的來說,方法一不需要設(shè)路由,只要新建規(guī)定名稱的模板就能生效了。
方法二:設(shè)置句柄
如果需要更個性化的錯誤頁面,不需要拘泥于特定的模板文件名,可以重新設(shè)置句柄,具體是在 urls.py 中設(shè)置:
# urls.pydef page_not_found(request, exception): return render(request, ’your_404_filename.html’)handler404 = page_not_foundurlpatterns = [ ...]
除了能捕獲不存在路由地址,還能捕獲視圖中 raise Http404(’message’) 拋出的異常。
哪些錯誤頁面可以配置
具體能自定義錯誤頁面的有 4 中狀態(tài)碼:
# django.views.defaults.pyERROR_404_TEMPLATE_NAME = ’404.html’ERROR_403_TEMPLATE_NAME = ’403.html’ERROR_400_TEMPLATE_NAME = ’400.html’ERROR_500_TEMPLATE_NAME = ’500.html’# django.conf.urls.__init__.pyhandler400 = defaults.bad_requesthandler403 = defaults.permission_deniedhandler404 = defaults.page_not_foundhandler500 = defaults.server_error
到此這篇關(guān)于Django 自定義404 500等錯誤頁面的實現(xiàn)的文章就介紹到這了,更多相關(guān)Django自定義404 500錯誤頁面內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP.NET MVC遍歷驗證ModelState的錯誤信息2. 將properties文件的配置設(shè)置為整個Web應用的全局變量實現(xiàn)方法3. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明4. jsp網(wǎng)頁實現(xiàn)貪吃蛇小游戲5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向7. asp中response.write("中文")或者js中文亂碼問題8. PHP設(shè)計模式中工廠模式深入詳解9. CSS hack用法案例詳解10. ThinkPHP5實現(xiàn)JWT Token認證的過程(親測可用)
