AI-序列化-做介面
阿新 • • 發佈:2018-12-04
如果有多個欄位,不能使用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) #序列化介面 returnResponse(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) # 序列化錯誤資訊
新增資料後效果: