• 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

  • 相关阅读:
    团队冲刺六
    团队冲刺五
    【Mybaits学习】03_ CRUD基于注解
    【Mybaits学习】02_ 快速入门
    【Mybaits学习】01_ 初识
    深圳国际马拉松
    深圳南山半程马拉松
    Selenide使用笔记
    UI自动化测试01-环境搭建
    Java C3p0在Spring中运用
  • 原文地址:https://www.cnblogs.com/chenyishi/p/10654435.html
Copyright © 2020-2023  润新知