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)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM