如果有多个字段, 不能使用 course.desc 这种方式来传数据, 太麻烦了! 所以使用 drf 的序列化组件!
做 GET 接口:
- from rest_framework.response import Response # 和 httpresponse 一样, 增加了数据结构化
- from rest_framework import serializers
- class CourseSerializer(serializers.Serializer):
- title=serializers.CharField(max_length=32) #增加了认证功能
- desc=serializers.CharField(max_length=32)
- class Courseview(APIView):
- def get(self,request):
- # 使用序列化传数据
- course_list=Course.objects.all()
- cs=CourseSerializer(course_list,many=True) #如果有多个字段, 不可能使用 course.desc 这种方式, 需要序列化简便!
- print(cs.data) #序列化接口
- return Response(cs.data) #我的序列化接口
效果:(使用 response 结构化, 使用序列化组件后的数据)
做 POST 请求:
- def post(self,request):
- print(request.data)
- cs=CourseSerializer(data=request.data) #默认 many=False
- if cs.is_valid(): #校验
- Course.objects.create(**request.data) #在数据库中添加数据
- return Response(cs.data) #序列化数据
- else:
- return Response(cs.errors) # 序列化错误信息
添加数据后效果:
来源: http://www.bubuko.com/infodetail-2871743.html