美文网首页
django HttpResponse分析

django HttpResponse分析

作者: 曲终人散Li | 来源:发表于2020-03-03 10:37 被阅读0次

    HttpResponse 对象

    . 使用字符串 或者 bytestring去构造HttpResponse。
    . 如果需要向HttpResponse添加内容, 则通过如下方式:
        response = HttpResponse()
        response.write(“<p>Here’s the text of the web page.</p>”)
        response.write(“<p>Here’s another paragraph.</p>”)
    . 去除response头部中的某些字段
        response = HttpResponse()
        response[‘Age’] = 120
        del response[‘Age’] #注意当key不存在时 也不会引起KeyError
    
    . 设置Cache-Control 和 Vary头部字段,可以使用patch_cache_control() 和 patch_vary_headers() 方法
    . HTTP头部字段值不能包含新行(CR/LF), 否则会出现BadHeaderError
    . 告诉浏览器返回的是文件附件,可以像下面这样做:
        // 1.需要指定content_type;   2.需要设置Content-Disposition头
        response = HttpResponse(my_data, content_type=‘application/vnd.ms-excel’)
        response[‘Content-Disposition’] = ‘attachment;filename=“foo.xls”’
    

    HttpResponse的属性

        .content  bytestring类型
        .charset response的编码方式
            如何实例化HttpResponse的时候没有指定charset,则使用content_type中的,如果还不行,则使用DEFAULT_CHARSET中的设置。
        .status_code
        .reason_phrase
        .streaming 设置为True时,中间件会区别对待streaming responses和常规的responses
        .closed
    

    HttpResponse的方法

        .__init__(content=b’’, content_type=None, status=200, reason=None, charset=None)
        .__setitem__(header, value) 设置头部信息 key和value都是字符串
         .__delitem__(header) 大小写敏感
         .__getitem__(header)
         .__has_header(header)
         .setdafault(header, value) 设置header的默认值
        .set_cookie(key, value=‘’, max_age=None, expires=None, path=‘/’, domain=None, secure=None, httponly=False, samesite=None)
            max_age是秒;expires如果没有指定的话 会自动计算
        .set_sighed_cookied(key, value, salt=‘’, max_age=None, expires=None, path=‘/’, domain=None, secure=None, httponly=False, samesite=None)
    

    HttpResponse子类 用于处理不同类型的http responses

        - HttpResponseRedirect
                - HttpResponsePermanentRedirect
        - HttpResponseNotModified
        - HttpResponseBadRequest
        - HttpResponseNotFound
        - HttpResponseForbidden
        - HttpResponseNotAllowed
        - HttpResponseGone
        - HttpResponseServerError
    

    JsonResponse对象

    构造函数
    JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)

    StreamingHttpResponse 对象

    用于从django向浏览器 stream response
    使用场景:当生成response需要长时间或大内存时,可以使用;例如生成一个csv文件
    

    FileResponse 对象

    FileResponse(open_file, as_attachment=False, file-name=‘’, **kwargs)

    相关文章

      网友评论

          本文标题:django HttpResponse分析

          本文链接:https://www.haomeiwen.com/subject/uztqlhtx.html