我是新來的網絡一般/ Django的世界。我一直在提高Http404
所有我的錯誤情況(從我的觀點來看)。我認爲提出404
以外的錯誤,比如401, 402..
對於不同的錯誤,對我來說可以更好地檢測到哪裏出了問題。django比http404引起其他狀態碼?
我發現return HttpResponse(status=401)
會做這項工作。但這是否被認爲是可以接受的做法?我是否應該不干涉狀態代碼,因爲它們中的每一個都應該是什麼意思?
我是新來的網絡一般/ Django的世界。我一直在提高Http404
所有我的錯誤情況(從我的觀點來看)。我認爲提出404
以外的錯誤,比如401, 402..
對於不同的錯誤,對我來說可以更好地檢測到哪裏出了問題。django比http404引起其他狀態碼?
我發現return HttpResponse(status=401)
會做這項工作。但這是否被認爲是可以接受的做法?我是否應該不干涉狀態代碼,因爲它們中的每一個都應該是什麼意思?
每個狀態代碼都有特定的含義。請參閱Wikipedia頁面上的List of HTTP status codes頁面以瞭解每個代碼的含義。
您應該爲每個響應選擇適當的狀態碼。例如,當客戶端未經授權時,您只應使用401
。將自己的含義分配給狀態代碼並不是一個好主意。
如果你想讓它更容易發現錯誤,你可以set a custom header代替:
response = HttpResponse()
response['My-App-Error'] = error_code
return response
是的,你可以繼承HttpResponse
來處理不同類型的HTTP響應。 更多信息here
例如,你可以用status code 403
發送HttpResponse
爲:
from django.http import HttpResponseBadRequest
def my_view(request):
# ...
return HttpResponseBadRequest('<h1>You are not authorized to view this page</h1>')