django后端DRF(增删改查,三种方式,集成度越来越大)
安装DRF继承库:
pip install djangorestframework
在app中建立一个serializers.py文件作为继承类的文件。并在setting中添加这个项目。
# serializers.py
from rest_framework import serializers
from movie.models import Movie, Category
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = '__all__'
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = '__all__'
基于类views的扩展
例子一(其他可进入类中查看方法,选择需要的类继承,做增删改查)
# view中创建这个目录返回类,利用get请求
class MovieDetail(APIView):
def get(self,request,pk):
try:
movie = Movie.objects.get(pk=pk)
except:
raise Http404
serializer = MovieDetailSerializer(movie)
return Response(serializer.data)
# 修改信息
def put(self, request, pk):
try:
movie = Movie.objects.get(pk=pk)
except:
raise Http404
serializer = MovieDetailSerializer(movie,data=request.data, partial=True)
if serializer.is_valid():
serializer.save
return Response(serializer.data, status=status.HTTP_202_ACCEPTED)
return Response(serializer.data, status=status.HTTP_400_BAD_ACCEPTED)
# 删除数据
def delete(self, request, pk):
try:
movie = Movie.objects.get(pk=pk)
except:
raise Http404
movie.delete()
return Response(status=status.HTTP_204_BAD_ACCEPTED)
# urls.py
path('<int:pk>',views.MovieDetail.as_view(), name=''detail)
基于class(增删改查进一步集成)
用其他基层也是点击父类查看
mixins.py
例子1增删改查
# 例子1
class MovieDatail(mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
generics.GenericAPIView):
# 在类中必须要继承的的数据
# 数据
qu