Django4.0 URL調(diào)度器-錯誤處理

2022-03-16 17:42 更新

當 Django 找不到所匹配的請求 URL 時,或引發(fā)了異常時,Django 會調(diào)用一個錯誤處理視圖。

這些情況發(fā)生時使用的視圖通過4個變量指定。它們的默認值應該滿足大部分項目,但是通過賦值給它們以進一步的自定義也是可以的。

這些值得在你的根?URLconf?中設置。在其它?URLconf中設置這些變量將不會生效果。

它們的值必須是可調(diào)用的或者是表示視圖的Python 完整導入路徑的字符串,可以方便地調(diào)用它們來處理錯誤情況。

這些值是:

  • handler400 -- 一個可調(diào)用對象,或者一個代表視圖的完整 Python 導入路徑的字符串,如果 HTTP 客戶端發(fā)送了一個引起錯誤條件的請求,并且響應的狀態(tài)碼為 400,那么就會調(diào)用該視圖。默認情況下,這是 ?django.views.defaults.bad_request()?。如果你實現(xiàn)了自定義視圖,請確保它接受 ?request和 ?exception參數(shù),并返回一個 ?HttpResponseBadRequest
  • handler403 -- 一個可調(diào)用對象,或者一個代表視圖的完整 Python 導入路徑的字符串,如果用戶沒有訪問資源所需的權(quán)限,那么就會調(diào)用該視圖。默認情況下,這是 ?django.views.defaults.permission_denied()?。如果你實現(xiàn)了一個自定義視圖,請確保它接受 ?request和 ?exception參數(shù),并返回一個 ?HttpResponseForbidden。
  • handler404 -- 一個可調(diào)用對象,或者一個代表視圖的完整 Python 導入路徑的字符串,如果沒有任何 URL 模式匹配,那么就會調(diào)用該視圖。默認情況下,這是 ?django.views.defaults.page_not_found()?。如果你實現(xiàn)了自定義視圖,請確保它接受 ?request和 ?exception參數(shù),并返回一個 ?HttpResponseNotFound?。
  • handler500 -- 一個可調(diào)用對象,或者一個代表視圖的完整 Python 導入路徑的字符串,在服務器出錯時會被調(diào)用。當你在視圖代碼中出現(xiàn)運行時錯誤時,就會發(fā)生服務器錯誤。默認情況下,這是 ?django.views.defaults.server_error()?。如果你實現(xiàn)了自定義視圖,請確保它接受一個 ?request參數(shù),并返回一個 ?HttpResponseServerError?。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號