zoukankan      html  css  js  c++  java
  • Python菜鸟之路:Django 序列化数据

    类型一:对于表单数据进行序列化

      这时需要用到ErrorDict。

      ret['errors'] = obj.errors.as_data()
      result = json.dumps(ret, cls=JsonCustomEncoder)  #JsonCustomEncoder是自定义的cls,用来转换ret中特殊的error字段类型
      return HttpRespon(result)
    

    类型二:对于queryset类型进行序列化

    第一种:v的类型是未知的
    	from django.core import serializers
    	
    	v = models.tb.objects.all() # 或者 v = models.tb.objects.values('id','name')  v=list(v)
    	data = serializers.serialize("json", v)
    	
    第二种:v的类型是已知的,在包含不能序列化的数据,比如time,datetime等类型时,需要自己定义cls
    	
    	import json 
    	from datetime import date 
    	from datetime import datetime 
    	   
    	class JsonCustomEncoder(json.JSONEncoder): 
    		
    		def default(self, field): 
    		 
    			if isinstance(field, datetime): 
    				return field.strftime('%Y-%m-%d %H:%M:%S') 
    			elif isinstance(field, date): 
    				return field.strftime('%Y-%m-%d') 
    			else: 
    				return json.JSONEncoder.default(self, field)
    
    	v = models.tb.objects.values('id','name','ctime')
    	v = list(v)
    	v = json.dumps(v,cls=JsonCustomEncoder)
    

      

  • 相关阅读:
    this和$(this)的关系
    单色边表格
    php概率算法
    jQuery Ajax 参数解析
    拍拍CPS入门使用
    飞鸽端口被占
    浏览器调试工具技巧分享
    事件click,bind,click
    jQuery旋转插件—rotate
    利用谷歌API生成二维码
  • 原文地址:https://www.cnblogs.com/jishuweiwang/p/6438833.html
Copyright © 2011-2022 走看看