使用APIView对数据的增删改查
1.viwe
from django.shortcuts import render
from myapp.models import Drink
from rest_framework.views import APIView
from rest_framework.response import Response
from myapp.serializes import drinkser
class Drink1(APIView):
def get(self,request):
drink_data = Drink.objects.all()
ser = drinkser(drink_data,many=True)
return Response(ser.data)
def post(self,request):
ser = drinkser(data=request.data)
if ser.is_valid(raise_exception=True):
ser.save()
return Response({'msg':'添加成功'})
return Response({'msg':'添加失败'})
class Drink2(APIView):
def put(self,request,id):
try:
drink_data = Drink.objects.get(id=id)
except Exception as e:
print(e)
return Response({'msg':'数据不存在'})
ser = drinkser(instance=drink_data,data=request.data)
if ser.is_valid(raise_exception=True):
ser.save()
return Response({'msg':'修改成功'})
return Response({"msg":'保存失败'})
def delete(self,request,id):
try:
Drink.objects.get(id=id).delete()
except Exception as e:
print(e)
return Response({'msg':'删除失败'})
return Response({'msg':'是删除成功'})
def get(self,request,id):
drink_data = Drink.objects.get(id=id)
ser = drinkser(drink_data)
return Response(ser.data)
class Drink3(APIView):
def get(self,request,name):
drink_data = Drink.objects.get(name=name)
ser = drinkser(drink_data)
return Response(ser.data)