Django-----序列化--jwt

安装命令
1.  pip install djangorestframework
2. from rest_framework.views import APIView
	

2.引入--rest_framework---->下划线,需要在配置文件夹app处的地方加入

序列化的类---将python数据类型转换成josn字符串
3.单写一个py文件  myserializers.py
导包:  from  rest-framework import  serializers

在 py 文件里从数据获取想要的数据后,需要通过前台vue渲染页面,所以得转为json字符串--(而序列化就是把python转成json数据的,反序列化是把json转为python)---序列化的三种方式

from mylist.serializers import * 

一、
# 原始方式----(过渡)----了解使用
class GoodsSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
price = serializers.DecimalField(max_digits=7,decimal_places=2)
comment = serializers.CharField()
		|
		|
# 第一种 了解使用
# def goods(request):
# # 序列化所有的时候,用many=True,all(),----------一条使用many=False,first()
# goods = Goods.objects.all()
# s = GoodsSerializer(goods,many=True)
# mes = {}
# mes['code']=200
# mes['message']=s.data
# return JsonResponse(mes)


二、
Class GoodsModelSerializer(serializers.ModelSerializer):
class Meta:
model = Goods
# fields = '__all__'
# 指明想要的字段
fields = ['id','name','price','comment']
			|
			|
三、
# 第二种、广泛使用
def goods(request):
# 序列化所有的时候,用many=True,all(),----------一条使用many=False,first()
goods = Goods.objects.all()
s = GoodsModelSerializer(goods,many=True)
mes = {}
mes['code']=200
mes['message']=s.data
return JsonResponse(mes)


# 第三种、原始使用

# 因向接口传送数据---vue接收的数据是json形式,因此需要to_dict()进行类型转换,code码进行传递确认
# to_dict()------->第一种方式
# def goods(request):
# goods = Goods.objects.all()
# mes = {}
# mes['code']=200
# goodslist = []
# for i in goods:
# goodslist.append(i.to_dict())
# mes['message']=goodslist
# return JsonResponse(mes)

def to_dict(self):
return {'id':self.id,'name':self.name,'price':self.price,'comment':self.comment}


--------------------------------------------------------------------------------------
# 展示购物车列表页--------将产品存入购物车后想在页面展示出来通过cart表里外建id序列化获取想要的数据
class MycartModelSerializer(serializers.ModelSerializer):
    is_checked = serializers.BooleanField(default=True)
    name = serializers.CharField(source='goods_id.name')
    image_url = serializers.CharField(source='goods_id.image_url')
    price = serializers.CharField(source='goods_id.price')

    class Meta:
        model = Cart
        fields = '__all__'


posted @ 2020-02-29 13:33  Mr-刘  阅读(246)  评论(0编辑  收藏  举报