2012-11-20 46 views
2

我是新來的網絡一般/ Django的世界。我一直在提高Http404所有我的錯誤情況(從我的觀點來看)。我認爲提出404以外的錯誤,比如401, 402..對於不同的錯誤,對我來說可以更好地檢測到哪裏出了問題。django比http404引起其他狀態碼?

我發現return HttpResponse(status=401)會做這項工作。但這是否被認爲是可以接受的做法?我是否應該不干涉狀態代碼,因爲它們中的每一個都應該是什麼意思?

回答

1

每個狀態代碼都有特定的含義。請參閱Wikipedia頁面上的List of HTTP status codes頁面以瞭解每個代碼的含義。

您應該爲每個響應選擇適當的狀態碼。例如,當客戶端未經授權時,您只應使用401。將自己的含義分配給狀態代碼並不是一個好主意。

如果你想讓它更容易發現錯誤,你可以set a custom header代替:

response = HttpResponse() 
response['My-App-Error'] = error_code 
return response 
0

是的,你可以繼承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>')