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

成都創(chuàng)新互聯(lián)專注于百色企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。百色網(wǎng)站建設(shè)公司,為百色等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
from django.http import HttpResponse, HttpResponseNotFound
def my_view(request):
# ...
if foo:
return HttpResponseNotFound('Page not found
')
else:
return HttpResponse('Page was found
')并不是每個(gè)可用 HTTP 響應(yīng)代碼都有專門指定的子類,因?yàn)樗鼈兒芏嗖⒉怀R姟H欢?,??HttpResponse ?文檔中所述的那樣,你也可以將 HTTP 狀態(tài)代碼傳遞給 ?HttpResponse ?的構(gòu)造函數(shù),這樣就可以為任何狀態(tài)代碼創(chuàng)建返回類。比如:
from django.http import HttpResponse
def my_view(request):
# ...
# Return a "created" (201) response code.
return HttpResponse(status=201)因?yàn)?404 錯(cuò)誤是最常見的 HTTP 錯(cuò)誤,這里有更簡單的方法來處理這些錯(cuò)誤。
Http404 異常
class django.http.Http404
當(dāng)你返回錯(cuò)誤,例如 ?HttpResponseNotFound ?,你需要定義錯(cuò)誤頁面的 HTML 。
return HttpResponseNotFound('Page not found
')為方便起見,在你的網(wǎng)站里有個(gè)一致的 404 錯(cuò)誤頁面是個(gè)好辦法,Django 提供 ?Http404 ?異常。如果你在視圖的任何地方引發(fā)了 ?Http404 ?,Django 會捕捉到它并且返回標(biāo)準(zhǔn)的錯(cuò)誤頁面,連同 HTTP 錯(cuò)誤代碼 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時(shí)顯示自定義的 HTML,你可以創(chuàng)建名為 404.html 的HTML模板,并將其放置在你的模板樹頂層。這個(gè)模板將在 DEBUG 設(shè)為 ?False時(shí)提供。
當(dāng) DEBUG 為 ?True ?時(shí),你可以提供 ?Http404 ?信息,并且在標(biāo)準(zhǔn)的 404 調(diào)試模板里顯示。使用這些信息來調(diào)試;它們通常不適合在生產(chǎn)環(huán)境下的404模板。
新聞名稱:創(chuàng)新互聯(lián)Django4.0教程:Django4.0編寫視圖-返回錯(cuò)誤信息
標(biāo)題來源:http://m.5511xx.com/article/ccshdjd.html


咨詢
建站咨詢
