Django REST framework basis: view and routing

We conducted a package is easier to use on the basis of the original modelserializers

#
author classAuthorModelSerializers (serializers.ModelSerializer): classMeta -: Model=models.Author Fields="__all__ is" fromrest_frameworkImportas mixins fromrest_frameworkImportgenerics classAuthorView (mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView): #QuerySet Serializer these two methods must be defined as a value that otherwise fail to QuerySet =models.Author.objects.all () serializer_class= AuthorModelSerializers def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs) class AuthorDetaiView(mixins.RetrieveModelMixin, mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView): # queryset serializer 这两个方法一定要定义成这个不然取不到值 queryset = models.Author.objects.all() serializer_class = AuthorModelSerializers def get(self, request, *args, **kwargs): return self.retrieve(request, *args, **kwargs) def delete(self,request,*args,**kwargs): return self.destroy(request,*args,**kwargs) def put(self,request,*args,**kwargs): return self.update(request,*args,**kwargs)

Generic class-based view (third package reduces the amount of code)

# Author 
class AuthorModelSerializers (serializers.ModelSerializer):
     class Meta -: 
        Model = models.Author 
        Fields = " __all__ is " 


from rest_framework Import as mixins
 from rest_framework Import generics 


# encapsulated layer 3 
class AuthorView (generics.ListCreateAPIView):
     # QuerySet both Serializer the method must be defined as the value otherwise fail to 
    QuerySet = models.Author.objects.all () 
    serializer_class = AuthorModelSerializers 


# encapsulated layer 3
class AuthorDetaiView (generics.RetrieveUpdateDestroyAPIView):
     # QuerySet Serializer these two methods must be defined as a value that otherwise fail to 
    QuerySet = models.Author.objects.all () 
    serializer_class = AuthorModelSerializers 

use viewset
viewsets.ModelViewSet

principle:

 

 
 

 

 




Author # 
class AuthorModelSerializers (serializers.ModelSerializer): class Meta: Model = models.Author Fields = "__all__" from rest_framework Import mixins from rest_framework Import generics class AuthorView (mixins.ListModelMixin , mixins.CreateModelMixin , generics.GenericAPIView): # QuerySet the Serializer both of these methods must be defined as a value that otherwise fail to QuerySet = models.Author.objects.all () serializer_class = AuthorModelSerializers DEF GET ( Self , Request
















, * Args , ** kwargs):
return Self .list (Request , * args , ** kwargs)

DEF POST ( Self , Request , * args , ** kwargs):
return Self .create (Request , * args , ** kwargs)


class AuthorDetaiView (mixins.RetrieveModelMixin , mixins.DestroyModelMixin , mixins.UpdateModelMixin ,
generics.GenericAPIView):
# QuerySet Serializer these two methods must be defined as a value that otherwise fail to
queryset = models.Author.objects.all ()
serializer_class = AuthorModelSerializers

def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)

def delete(self,request,*args,**kwargs):
return self.destroy(request,*args,**kwargs)

def put(self,request,*args,**kwargs):
return self.update(request,*args,**kwargs)

Guess you like

Origin www.cnblogs.com/Rivend/p/11832388.html