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

    def get_data(req):
        ret = {'status':True,'data':None}
        try:
            user_list = models.User.objects.all()
            ret['data']=user_list
            #TypeError at /get_data.html
            #<QuerySet [<User: dwafwaa>, <User: fwaf>, <User: faw>, <User: fwafwa>]> is not JSON serializable
         #json只能序列化基本数据类型,对于对象是不能进行序列化,需要我们使用serializers.serialize except Exception
    as e: ret['status']=False result = serializers.serialize("json",ret) #typeError: 'module' object is not callable #serializers只能对queryset进行序列化
      #这里中ret含有基本数据类型,serializers.serialize不能进行序列化
    return HttpResponse(result)

    正确使用:

    def get_data(req):
        ret = {'status':True,'data':None}
        try:
            user_list = models.User.objects.all()
            ret['data']=serializers.serialize("json",user_list)
            #TypeError at /get_data.html
            #<QuerySet [<User: dwafwaa>, <User: fwaf>, <User: faw>, <User: fwafwa>]> is not JSON serializable
    
    
            #去数据库中取数据时,有格式queryset
            #其中可以是对象,列表,字典,在外面包着[]列表
            #对于对象的序列化,需要我们使用serializers.serialize("json",user_list)进行处理
            #对于其他基本类型我们只需要稍微进行转换即可,直接转换为列表(由queryset)list(user_list)即可
            #在前端获取的数据就不需要在进行一次反序列化了(对于serialize,我们需要进行一次反序列化,这里没有使用serialize,所以不需要转义)
    
    
        except Exception as e:
            ret['status']=False
        result = json.dumps(ret)
        return HttpResponse(result)

    前端使用:

        function initData(){
            $.ajax({
                url:"/get_data.html",
                type:"get",
                dataType:"json",
                success:function(data){
                    if(data.status){
                        console.log(data.data)
                        var v = JSON.parse(data.data);  #对于我们获取的data.data对应上面serializers.serialize序列化的数据,又被json序列化,所以我们还需要再进行JSON.parse再获取一次
                        console.log(v)
                    }
                }
            })
        }
  • 相关阅读:
    错误需要理由吗?(SQL Server 不存在或访问被拒绝)
    关于权限设计的轻量级实现
    ppc通过数据线与共享电脑上网
    解读.Net中的命名空间和程序集
    .Net XML 树
    软件开发教父与国内高手论道实录全文
    企业信息化, 该怎么规划?
    ASP.NET Portal Starter Kit中的角色验证
    用js实现类似分享到显示效果
    用js实现同一个页面多个渐变效果
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8684835.html
Copyright © 2011-2022 走看看