zoukankan      html  css  js  c++  java
  • django序列化

    序列化:将数据转化为可以存储在文件中的格式的过程叫做序列化

    反序列化:将文件中的数据转化为原格式的过程叫做反序列化

    python的dump不能序列化django的QuerySet和model对象,如果要序列化QuerySet,需要用到serializers模块,且该模块只能序列化QuerySet。

    第一种情况

    后端序列化:serializers.serialize("json",QuerySet)

    前端反序列化:JSON.parse(序列化数据)

    #在后台
    from django.core import serializers #导入模块
    import json
    ……
        ret = {'status':True,'data':None}
        user_list = models.UserInfo.objects.all()
        ret['data'] = serializers.serialize("json",user_list) #序列化为json格式
        return HttpResponse(json.dumps(ret))
    //在前端ajax
        DataType:'JSON'  //DataType指定为JSON会将后端传递过来的的JSON字符串转换为原字典格式
        ……
    
        v = JSON.parse(arg.data)  //前端通过JSON.parse()将后端serialize序列化之后的数据转化为原QuerySet

    第二种情况

    #在后台
    import json
    ……
        ret = {'status':True,'data':None}
        user_list = models.UserInfo.objects.all().values('id','username')#或者values_list('id','username') #模型对象,对象中的每一个值为字典或元组
        ret['data'] = list(user_list) 
        return HttpResponse(json.dumps(ret))
    //在前端ajax
        DataType:'JSON'  //DataType指定为JSON会将后端传递过来的的JSON字符串转换为原字典格式
        ……
    
        v = arg.data //前端直接获取值
  • 相关阅读:
    MS SQL 错误 :17883,严重度: 1,状态: 0
    秒杀架构中高性能可扩展高可用的一点思考
    让IE10等支持classList2.0
    判定元素是否刚插入到DOM树
    accept巨坑
    for in 循环的输出顺序问题
    css斜线
    angular的directive笔记
    avalon最佳实践
    迷你MVVM框架 avalonjs 0.97发布
  • 原文地址:https://www.cnblogs.com/Forever77/p/10855525.html
Copyright © 2011-2022 走看看