欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django 自定義404 500等錯(cuò)誤頁面的實(shí)現(xiàn)

 更新時(shí)間:2020年03月08日 08:36:31   作者:棲遲于一丘  
這篇文章主要介紹了Django 自定義404 500等錯(cuò)誤頁面的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在開發(fā)網(wǎng)站的過程中,404,500錯(cuò)誤,是不可避免產(chǎn)生的。
一旦產(chǎn)生了這種錯(cuò)誤,很多可以通過web server 來處理。比如使用 apache 的定義
或者nginx 的定義。都可以定向處理。如果單純在django里面可以處理嗎?肯定是可以的,django提供了相應(yīng)的處理方式,只要在django里

起步

面定義了,無論你今后部署在apache下或者是nginx下,都是生效的。

要想自定義錯(cuò)誤頁面,需要關(guān)閉調(diào)試模式 DEBUG = False ,因?yàn)檎{(diào)試模式的錯(cuò)誤頁面是開發(fā)下會顯示錯(cuò)誤信息的。

有兩種方法可以實(shí)現(xiàn)自定義的錯(cuò)誤頁面。

方法一:創(chuàng)建特定命名的模板文件

這是一種非常簡單的方式。在項(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):
 ...

總的來說,方法一不需要設(shè)路由,只要新建規(guī)定名稱的模板就能生效了。

方法二:設(shè)置句柄

如果需要更個(gè)性化的錯(cuò)誤頁面,不需要拘泥于特定的模板文件名,可以重新設(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ò)誤頁面可以配置

具體能自定義錯(cuò)誤頁面的有 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ò)誤頁面的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Django自定義404 500錯(cuò)誤頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論