django的response-8

发布时间:2019-03-19 21:06:12编辑:auto阅读(1753)

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

关键字