檢視函式在處理請求後,必須返回一個 HttpResponse
物件,或者 HttpResponse
物件的子物件。
1. HttpResponse
可以通過 django.http.HttpResponse 來構造響應物件,並設定 響應頭,響應體,響應體型別,狀態碼等。
HttpResponse(content=響應體, content_type=響應體型別, status=狀態碼)
響應體,狀態碼等也可以單獨設定
response = HttpResponse()
response.content = "響應體"
response.status_code = 200
響應頭可以把 HttpResponse
物件當做字典來進行設定。
response = HttpResponse()
response[響應頭key] = 響應頭值
示例:
def response_view(request):
response = HttpResponse()
response.content = "響應體"
response.status_code = 200
response[`name`] = `xuanli`
return response
響應結果
Body:響應體
Headers:name →xuanli
def response_view2(request):
return HttpResponse(content="響應體", status=200)
響應結果
Body:響應體
2. HttpResponse的子類
Django提供了一系列HttpResponse的子類,可以快速設定狀態碼
HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500
3. JsonResponse
可以使用 JsonResponse
來快速構造json型別的響應物件,它可以幫助我們把資料轉換為json字串,並把響應頭的 Content_type
為 application/json
from django.http import JsonResponse
def resopnse_json(request):
return JsonResponse({"name": "xuanli", "age": "18"})
響應結果
{
"age": "18",
"name": "xuanli"
}
4. 重定向
使用 redirect
重定向
def redirect_view(request):
return redirect(`/demo/index`)
重定向到 /demo/index