美文网首页
4.django返回json格式数

4.django返回json格式数

作者: 何阿驼 | 来源:发表于2018-07-22 11:40 被阅读0次

    Django数据序列化

    1.Python json模块

    介绍Json

    Json(Javascript Object Notation,Js对象标记) 是一种轻量级的数据交互格式。

    在Python中Json其实就是字典格式

    在Python中有专门处理Json的模块,分别是Json和Pickle模块

    Json模块提供了四个方法:dumps,dump,loads,load

    1531749505531.png

    Pickle模块也是四个功能: dumps,dump,load,loads

    1531749531979.png

    区别

    dumps 只完成了序列化为str

    dump 需要传入文件描述符,将序列化的str保存到文件中

    1531749598946.png 1531749582234.png

    loads 只完成了反序列化

    load 需要传入文件描述符,完成了读取文件了反序列化

    import json
    
    '''
    序列化,dumps
    '''
    str = 'test'
    new_str = json.dumps('test') #dumps可以将所有内容转换成str  
    print(new_str)
    dict = {'a':'1','b':'2'}
    new_dict = json.dumps(dict)
    print(new_dict)
    '''
    反序列化,loads
    '''
    new_str2 = json.loads(new_str)
    print(new_str2)
    new_dict2 = json.loads(new_dict)
    print(new_dict2)
    
    '''
    PS C:\Users\Alpaca\Desktop\Django> & python c:/Users/Alpaca/Desktop/Django/__pycache__/jsontest.py
    "test"
    {"a": "1", "b": "2"}
    test
    {'a': '1', 'b': '2'}
    '''
    

    Pickle和Json模块的区别

    Json格式很多编程语言都统一使用,但是Pickle只有Python语言认识,放到其他语言中会出现错误

    2.开始序列化

    1531751688361.png 1531751713929.png

    由于这样返回只会让我们看到一串str的内容,无法让我们清楚的看到数据之间的层次和包含关系,因此我们要对这些数据反序列化再输出。

    1.将他变成字典的格式(json格式)

    2.再使用dumps方法序列化

    1531752359758.png 1531752348390.png

    问题

    这样做的会出现很多的错误,并且当字段一旦多的时候,我们就需要一个一个的填充

    3.进阶版序列化方法

    使用了django内置的方法

    1531752708988.png

    效果一样

    问题

    当我们字段中有imagefield字段的时候,就会出现不能序列化

    1531752801958.png

    4.再次进阶

    使用django自带的方法,serializer

    1531753012019.png

    (如果再后面没有加content_type)返回的内容很杂乱

    1531753028162.png

    使用jsonResponse

    为了防止上面的错误,我们可以把httpResponse变成 jsonReponse

    1531753360065.png

    可以看出这个方法里面对data这个数据进行了序列化的操作。为了防止错误,我们需要再之前对数据进行反序列化

    1531753604159.png

    注意,这里还是会出现错误

    1531753633185.png

    他要我们把这个safe字段设置为False

    1531753669462.png

    设置完成

    相关文章

      网友评论

          本文标题:4.django返回json格式数

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