django的response-8

玄離199發表於2018-10-19

檢視函式在處理請求後,必須返回一個 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_typeapplication/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

相關文章