django的response-8

视图函数在处理请求后,必须返回一个 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

原文地址:https://www.cnblogs.com/mxuanli/p/9816406.html