2011-10-10 70 views

回答

14

HttpResponseNotFound就像一個正常的HttpResponse,只是它發送錯誤代碼404。所以,這取決於你在該視圖中呈現一個合適的404頁面,否則瀏覽器將顯示它自己的默認值。

提高的Http404異常將觸發的Django調用自己的404錯誤觀點。實際上,這只不過是渲染404.html模板併發送它 - 事實上使用HttpResponseNotFound。但方便的是,你在一個地方指定了模板(如果你喜歡,可以查看)。

3

除了大牛說,養一個Http404例外可能是,它允許更加靈活的您生成一個404如從輔助函數中調用棧更深的(可能是一個通常返回非HttpResponse型)和依賴,而不必創建一個HttpResponseNotFound並手動將它傳遞備份到您最初起草你的迴應Python的異常傳播。

0

在addtion什麼丹尼爾和esmail說,以供參考,這是字面上HttpResponseNotFound的Django(V1.8)的定義:

class HttpResponseNotFound(HttpResponse): 
    status_code = 404 

而對於測好,Http404定義:

class Http404(Exception): 
    pass 
相關問題