新聞中心
Django 提供了有關返回 HTTP 錯誤代碼的幫助。?HttpResponse ?的子類除了200外,還有很多常見的 HTTP 狀態(tài)代碼。返回這些子類中某個子類的實例而不是 ?HttpResponse ?來表示錯誤。比如:

成都創(chuàng)新互聯(lián)專注于百色企業(yè)網(wǎng)站建設,自適應網(wǎng)站建設,商城網(wǎng)站制作。百色網(wǎng)站建設公司,為百色等地區(qū)提供建站服務。全流程按需規(guī)劃網(wǎng)站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
from django.http import HttpResponse, HttpResponseNotFound
def my_view(request):
# ...
if foo:
return HttpResponseNotFound('Page not found
')
else:
return HttpResponse('Page was found
')并不是每個可用 HTTP 響應代碼都有專門指定的子類,因為它們很多并不常見。然而,如 ?HttpResponse ?文檔中所述的那樣,你也可以將 HTTP 狀態(tài)代碼傳遞給 ?HttpResponse ?的構造函數(shù),這樣就可以為任何狀態(tài)代碼創(chuàng)建返回類。比如:
from django.http import HttpResponse
def my_view(request):
# ...
# Return a "created" (201) response code.
return HttpResponse(status=201)因為 404 錯誤是最常見的 HTTP 錯誤,這里有更簡單的方法來處理這些錯誤。
Http404 異常
class django.http.Http404
當你返回錯誤,例如 ?HttpResponseNotFound ?,你需要定義錯誤頁面的 HTML 。
return HttpResponseNotFound('Page not found
')為方便起見,在你的網(wǎng)站里有個一致的 404 錯誤頁面是個好辦法,Django 提供 ?Http404 ?異常。如果你在視圖的任何地方引發(fā)了 ?Http404 ?,Django 會捕捉到它并且返回標準的錯誤頁面,連同 HTTP 錯誤代碼 404 。
用法示例:
from django.http import Http404
from django.shortcuts import render
from polls.models import Poll
def detail(request, poll_id):
try:
p = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404("Poll does not exist")
return render(request, 'polls/detail.html', {'poll': p})為了在 Django 返回404時顯示自定義的 HTML,你可以創(chuàng)建名為 404.html 的HTML模板,并將其放置在你的模板樹頂層。這個模板將在 DEBUG 設為 ?False時提供。
當 DEBUG 為 ?True ?時,你可以提供 ?Http404 ?信息,并且在標準的 404 調試模板里顯示。使用這些信息來調試;它們通常不適合在生產環(huán)境下的404模板。
文章題目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0編寫視圖-返回錯誤信息
標題網(wǎng)址:http://m.fisionsoft.com.cn/article/ccshdjd.html


咨詢
建站咨詢
