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