Django 自定義404 500等錯誤頁面的實現(xiàn)
在開發(fā)網(wǎng)站的過程中,404,500錯誤,是不可避免產生的。
一旦產生了這種錯誤,很多可以通過web server 來處理。比如使用 apache 的定義
或者nginx 的定義。都可以定向處理。如果單純在django里面可以處理嗎?肯定是可以的,django提供了相應的處理方式,只要在django里
起步
面定義了,無論你今后部署在apache下或者是nginx下,都是生效的。
要想自定義錯誤頁面,需要關閉調試模式 DEBUG = False ,因為調試模式的錯誤頁面是開發(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): ...
總的來說,方法一不需要設路由,只要新建規(guī)定名稱的模板就能生效了。
方法二:設置句柄
如果需要更個性化的錯誤頁面,不需要拘泥于特定的模板文件名,可以重新設置句柄,具體是在 urls.py 中設置:
# urls.py def page_not_found(request, exception): return render(request, 'your_404_filename.html') handler404 = page_not_found urlpatterns = [ ... ]
除了能捕獲不存在路由地址,還能捕獲視圖中 raise Http404('message') 拋出的異常。
哪些錯誤頁面可以配置
具體能自定義錯誤頁面的有 4 中狀態(tài)碼:
# django.views.defaults.py ERROR_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__.py handler400 = defaults.bad_request handler403 = defaults.permission_denied handler404 = defaults.page_not_found handler500 = defaults.server_error
到此這篇關于Django 自定義404 500等錯誤頁面的實現(xiàn)的文章就介紹到這了,更多相關Django自定義404 500錯誤頁面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
人工智能學習PyTorch實現(xiàn)CNN卷積層及nn.Module類示例分析
這篇文章主要為大家介紹了人工智能學習PyTorch實現(xiàn)CNN卷積層及nn.Module類示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11Python基于datetime或time模塊分別獲取當前時間戳的方法實例
今天小編就為大家分享一篇關于Python基于datetime或time模塊分別獲取當前時間戳的方法實例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-0240行Python代碼實現(xiàn)天氣預報和每日雞湯推送功能
這篇文章主要介紹了通過40行Python代碼實現(xiàn)天氣預報和每日雞湯推送功能,代碼簡單易懂,非常不錯具有一定的參考借鑒價值 ,需要的朋友可以參考下2020-02-02python利用joblib進行并行數(shù)據(jù)處理的代碼示例
在數(shù)據(jù)量比較大的情況下,數(shù)據(jù)預處理有時候會非常耗費時間,可以利用 joblib 中的 Parallel 和 delayed 進行多CPU并行處理,文中給出了詳細的代碼示例,需要的朋友可以參考下2023-10-10使用Django框架中ORM系統(tǒng)實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查
這篇文章主要介紹了使用Django的ORM實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)增刪改查方法,文中附含詳細示例代碼以及過程詳解,有需要的朋友可以借鑒參考下2021-09-09