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)
                    }
                }
            })
        }
  • 相关阅读:
    python爬虫中遇到的问题以及解决方法
    python爬虫中涉及json数据的处理
    python——selenium库的使用
    python数据可视化(一)——绘制随机漫步图
    Python练习题——用列表的方法输出杨辉三角
    python——使用xlwing库进行Excel操作
    DesignPattern_Java:Factory Method Pattern
    eclipse导出可执行的jar包
    DesignPattern_Java:SingletonPattern
    DesignPattern_Java:设计模式分类和设计原则
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8684835.html
Copyright © 2011-2022 走看看