序列化

Posted karina梅梅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化相关的知识,希望对你有一定的参考价值。

序列化

#序列化
   #- django内置
   #- json + 扩展
 
#关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。

a. 两种方式

#a.serializers:
 
    from django.core import serializers
 
    ret = models.Server.objects.all()
    data = serializers.serialize("json", ret)
 
    return HttpResponse(data)
 
 
    #浏览器反问
    http://127.0.0.1:8000/backend/curd_json.html
    ------------------结果-------------------
    所有的都显示出来
 
#b. json.dumps
 
    ret = models.Server.objects.values("id","hostname")
    data = json.dumps(list(ret))
 
    return HttpResponse(data)
 
    #浏览器反问
    http://127.0.0.1:8000/backend/curd_json.html
    ----------------结果---------------------
    [{"hostname": "c2.com", "id": 1}] 

b. 由于json.dumps时无法处理datetime日期,所以可以通过自定义处理器来做扩展,如:  

技术分享
#每个字段都会验证一遍,都会执行default函数


import json
from datetime import date
from datetime import datetime

def curd_json(request):
    class JsonCustomEncoder(json.JSONEncoder):

        def default(self, value):            #每个字段

            if isinstance(value, datetime):
                return value.strftime(%Y-%m-%d %H:%M:%S)
            elif isinstance(value, date):
                return value.strftime(%Y-%m-%d)
            else:
                return json.JSONEncoder.default(self, value)

ret = models.Server.objects.values("id","hostname","create_at")
data = json.dumps(list(ret),cls=JsonCustomEncoder)            #cls是一个类,默认是json.JSONEncoder类

return HttpResponse(data)
View Code

 

  

以上是关于序列化的主要内容,如果未能解决你的问题,请参考以下文章

Java mp4parser 片段序列不连续

教程4 - 验证和权限

片段布局为空白

如何将库类或对象传递给片段?

POJ2778DNA Sequence(AC自动机)

第2题——DNA片段