zoukankan      html  css  js  c++  java
  • 序列化

    序列化

    #序列化
       #- 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

      

  • 相关阅读:
    常用SQL语句大全总结
    修改 Mac 默认 PHP 运行环境
    mac下更新自带的PHP版本到5.6或7.0
    apache php 开启伪静态
    酒店迎接新技术变革:用智能手机开门
    百度地图显示多个标注点
    百度地图api简单使用方法
    Spring mvc 配置详解
    Spring MVC入门知识总结
    Bootstrap 按钮
  • 原文地址:https://www.cnblogs.com/niejinmei/p/7286830.html
Copyright © 2011-2022 走看看