Django 自定義404 500等錯(cuò)誤頁(yè)面的實(shí)現(xiàn)
在開發(fā)網(wǎng)站的過程中,404,500錯(cuò)誤,是不可避免產(chǎn)生的。
一旦產(chǎn)生了這種錯(cuò)誤,很多可以通過web server 來(lái)處理。比如使用 apache 的定義
或者nginx 的定義。都可以定向處理。如果單純?cè)赿jango里面可以處理嗎?肯定是可以的,django提供了相應(yīng)的處理方式,只要在django里
起步
面定義了,無(wú)論你今后部署在apache下或者是nginx下,都是生效的。
要想自定義錯(cuò)誤頁(yè)面,需要關(guān)閉調(diào)試模式 DEBUG = False ,因?yàn)檎{(diào)試模式的錯(cuò)誤頁(yè)面是開發(fā)下會(huì)顯示錯(cuò)誤信息的。
有兩種方法可以實(shí)現(xiàn)自定義的錯(cuò)誤頁(yè)面。
方法一:創(chuàng)建特定命名的模板文件
這是一種非常簡(jiǎn)單的方式。在項(xiàng)目模板文件夾 templates 中創(chuàng)建命名為 404.html 的模板文件即可。
這個(gè)方式是其實(shí)是借用了 Django 的模板查找規(guī)則進(jìn)行的。源碼在 django.views.defaults.py 中:
ERROR_404_TEMPLATE_NAME = '404.html' def page_not_found(request, exception, template_name=ERROR_404_TEMPLATE_NAME): ...
總的來(lái)說,方法一不需要設(shè)路由,只要新建規(guī)定名稱的模板就能生效了。
方法二:設(shè)置句柄
如果需要更個(gè)性化的錯(cuò)誤頁(yè)面,不需要拘泥于特定的模板文件名,可以重新設(shè)置句柄,具體是在 urls.py 中設(shè)置:
# urls.py def page_not_found(request, exception): return render(request, 'your_404_filename.html') handler404 = page_not_found urlpatterns = [ ... ]
除了能捕獲不存在路由地址,還能捕獲視圖中 raise Http404('message') 拋出的異常。
哪些錯(cuò)誤頁(yè)面可以配置
具體能自定義錯(cuò)誤頁(yè)面的有 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
到此這篇關(guān)于Django 自定義404 500等錯(cuò)誤頁(yè)面的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Django自定義404 500錯(cuò)誤頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)讀取及寫入csv文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取及寫入csv文件的方法,涉及Python針對(duì)csv格式文件的讀取、遍歷、寫入等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python函數(shù)參數(shù)類型及排序原理總結(jié)
這篇文章主要介紹了Python函數(shù)參數(shù)類型及排序原理總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件示例
這篇文章主要介紹了Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件,結(jié)合實(shí)例形式分析了Python大數(shù)據(jù)操作中使用lxml庫(kù)解析html網(wǎng)頁(yè)具體步驟及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-11-11
pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換)
這篇文章主要介紹了pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-06-06
python的列表List求均值和中位數(shù)實(shí)例
這篇文章主要介紹了python的列表List求均值和中位數(shù)實(shí)例,具有很好對(duì)參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-03-03
python 創(chuàng)建一個(gè)空dataframe 然后添加行數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇python 創(chuàng)建一個(gè)空dataframe 然后添加行數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-06-06
Python matplotlib實(shí)時(shí)畫圖案例
這篇文章主要介紹了Python matplotlib實(shí)時(shí)畫圖案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-04-04
Pandas創(chuàng)建DataFrame提示:type?object?'object'?has?n
Pandas數(shù)據(jù)幀(DataFrame)是二維數(shù)據(jù)結(jié)構(gòu),它包含一組有序的列,每列可以是不同的數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于Pandas創(chuàng)建DataFrame提示:type?object?‘object‘?has?no?attribute?‘dtype‘的解決方案,需要的朋友可以參考下2023-02-02

