zoukankan      html  css  js  c++  java
  • JsonResponse对象

    class JsonResponse(data,encoder = DjangoJSONEncoder,safe = True,json_dumps_params = None ,** kwargs)[source]

    HttpResponse 的一个子类,帮助用户创建JSON 编码的响应。 它从父类继承大部分行为,并具有以下不同点:

    它的默认Content-Type 头部设置为application/json

    它的第一个参数data,应该为一个dict 实例。 如果safe 参数设置为False,它可以是任何可JSON 序列化的对象。

    encoder,默认为 django.core.serializers.json.DjangoJSONEncoder,用于序列化data。 关于这个序列化的更多信息参见JSON serialization

    布尔参数safe 默认为True。 如果设置为False,可以传递任何对象进行序列化(否则,只允许dict 实例)。 如果safe 为True,而第一个参数传递的不是dict对象,将抛出一个TypeError

    json_dumps_params参数是传递给用于生成响应的json.dumps()调用的关键字参数的字典。

    用法:

    典型的用法如下:

    >>> from django.http import JsonResponse
    >>> response = JsonResponse({'foo': 'bar'}) #
    >>> response.content
    b'{"foo": "bar"}'
    from django.http import JsonResponse
    def diggit(request):
    response_stat={"state":True}
    return JsonResponse(response_stat) #这个方法直接给你序列化,不需要这样写HttpResponse(json.dumps(response_stat),
        # 而且返回到ajax的值不需要反向解析了

    序列化非字典对象(http://python.usyiyi.cn/documents/Django_111/ref/request-response.html#serializing-non-dictionary-objects)

    若要序列化非dict 对象,你必须设置safe 参数为False:
    
    >>> response = JsonResponse([1, 2, 3], safe=False)
    如果不传递safe=False,将抛出一个TypeError
  • 相关阅读:
    二十八 .Django中模型类中Meta元对象了解
    【POJ2376】Cleaning Shifts
    【CF600E】Lomsat gelral
    【hiho1035】自驾旅行III
    【模板】manachar
    【hiho1065】全图传送
    【洛谷P1450】硬币购物
    【HDU2204】Eddy's爱好
    【CF208E】Blood Cousins
    【CF451E】Devu and Flowers
  • 原文地址:https://www.cnblogs.com/gongxu/p/8572344.html
Copyright © 2011-2022 走看看