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 //前端直接获取值

 

posted @ 2019-05-13 11:06  Forever77  阅读(178)  评论(0)    收藏  举报