1. 程式人生 > >AI-序列化-做介面

AI-序列化-做介面

 

如果有多個欄位,不能使用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) # 序列化錯誤資訊

新增資料後效果: