Django的基本的序列化与反序列化操作
- 序列化-----> 也就是出库操作,多用于查询数据,把python串转成json字符
- 反序列化—>也就是入库操作,多用于向数据库添加数据,把json串转成python字符
反序列化
*** views.py文件里 ***
class Addcate(APIView):
def post(self,request):
data = request.data
cate = CateUnserializer(data=data)
if cate.is_valid():
cate.save()
return HttpResponse('YES')
return HttpResponse('No')
*** serializer.py文件里 ***
from rest_framework import serializers
class CateUnserializer(serializers.Serializer):
name = serializers.CharField(max_length=32)
def create(self,data):
return Cate.objects.create(**data)
反序列化添加及修改
=== views.py文件 ===
class AddGoods(APIView):
def post(self,request):
data = {'name':'oppo','cates_id':1}
goods = GoodsUnserializer(data=data)
if goods.is_valid():
goods.save()
return HttpResponse('OK')
return HttpResponse('不OK')
===serializer.py ====
class GoodsUnserializer(serializers.Serializer):
name = serializers.CharField(max_length=32)
cates_id = serializers.IntegerField()
def create(self,data):
return Goods.objects.create(**data)
==== serializer.py里 ====
def update(self,instance,data):
return instance.update(**data)
=== views.py ===
def put(self,request):
goods = Goods.objects.filter(id=1)
data = {'name':'iphone','cates':2}
g = GoodsUnserializer(goods,data=data)
if g.is_valid():
g.save()
return HttpResponse('YES')
return HttpResponse('NO')
序列化的基本操作
===== views.py =====
class Getcate(APIView):
def get(self,request):
cate = Cate.objects.filter(id=1).first()
ser = CateSerializer(cate)
return JsonResponse(ser.data)
====serializer.py =========
class CateSerializer(serializers.ModelSerializer):
class Meta:
model = Cate
fields = '__all__'
---------------------------------------------------------------------------------------------------
===== views.py =====
class Getgoods(APIView):
def get(self,request):
goods = Goods.objects.filter(id=2).first()
ser = GoodsSerializer(goods)
return JsonResponse(ser.data)
====serializer.py =========
class GoodsSerializer(serializers.ModelSerializer):
catems = serializers.CharField(source='cates.name')
class Meta:
model = Goods
fields = ('catems','id','name')
----------------------------------------------------------------------------------