码迷,mamicode.com
首页 > 编程语言 > 详细

python---django中序列化

时间:2018-04-01 01:05:53      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:exception   erro   数据类型   中序   def   转换   bsp   使用   htm   

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---django中序列化

标签:exception   erro   数据类型   中序   def   转换   bsp   使用   htm   

原文地址:https://www.cnblogs.com/ssyfj/p/8684835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!