序列化:把一个对象转化成一个可以被保存到文件的数据类型的过程。
可以被保存到本地文件
反序列化:把一个可以被保存到文件的数据转换成一个对象的过程就是反序列化。
序列化用法:
案列代码:
serializers 主要用于将对象转换为json格式的字符串,一般不建议使用,除非迫不得已情况下使用,原因是因为转化的json字段嵌套层数太多。
-----------------views,py------------------------------
from django.shortcuts import render
from django.shortcuts import HttpResponse
from app01 import models
import json
def xuliehua(request):
return render(request,'xuliehua.html')
def get_data(request):
from django.core import serializers
ret = {'status':True,'data':None}
try:
# user_list = models.UserInfo.objects.all()
# QuerySet【obj,obj,obj】
# ret['data'] = serializers.serialize("json",user_list)
# // var
# v = JSON.parse(arg.data);
# // console.log(v);
# user_list = models.UserInfo.objects.all().values('id','username')
# ret['data'] = list(user_list)
# console.log(arg.data);
# user_list = models.UserInfo.objects.all().values_list('id','username')
# ret['data'] = list(user_list)
# console.log(arg.data);
pass
except Exception as e:
ret['status'] = False
result = json.dumps(ret)
return HttpResponse(result)
------------------------xuliehua.html----------------------------
<body>
<h1>用户列表</h1>
<table id="tb">
</table>
<script src="/static/jquery-3.1.1.js"></script>
<script>
$(function () {
initData();
});
function initData() {
$.ajax({
url :'/get_data/',
type:'GET',
dataType:'JSON',
success:function (arg) {
//$('#tb').append(arg);
if(arg.status){
console.log(arg.data);
//var v = JSON.parse(arg.data);
//console.log(v);
}
}
})
}
</script>
</body>
--------------------------get_data.html-----------------------------
{% for row in user_list %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.username }}</td>
<td>{{ row.email }}</td>
</tr>
{% endfor %}