django drf GenericAPIView和ListAPIView
Posted chester.chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django drf GenericAPIView和ListAPIView相关的知识,希望对你有一定的参考价值。
drf提供了更快捷的查询方法ListModelMixin+GenericAPIView,和ListAPIView
1.ListModelMixin+GenericAPIView
from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, generics from rest_framework.generics import ListAPIView from rest_framework.pagination import PageNumberPagination from goods.models import Goods from goods.serializer import GoodsSerializer class GoodsList(mixins.ListModelMixin,generics.GenericAPIView): queryset = Goods.objects.all()[:10] serializer_class = GoodsSerializer def get(self,request,*args,**kwargs): return self.list(request,*args,**kwargs) # 需要配置setting.py中的REST_FRAMEWORK节点 class GoodsList(ListAPIView): queryset = Goods.objects.all()[:10] serializer_class = GoodsSerializer
2.ListAPIView
from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, generics from rest_framework.generics import ListAPIView from rest_framework.pagination import PageNumberPagination from goods.models import Goods from goods.serializer import GoodsSerializer class GoodsList(ListAPIView): class GoodsPagination(PageNumberPagination): page_size = 1 page_size_query_param = \'pageSize\' page_query_param = \'p\' max_page_size = 100 queryset = Goods.objects.all()[:10] serializer_class = GoodsSerializer pagination_class = GoodsPagination
我们可以从源码中看到ListAPIVIew继承了ListModelMixin+GenericAPIView
以上是关于django drf GenericAPIView和ListAPIView的主要内容,如果未能解决你的问题,请参考以下文章
DRF的APIView和mixins+GenericAPIView和ListAPIView