zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)
    CSU 1120 病毒(DP)
    CSU 1116 Kingdoms(枚举最小生成树)
    一种map容器遍历的方法
    CSU 1113 Updating a Dictionary(map容器应用)
    Python模块-virtualenv-虚拟环境
    计算学习原理
    sklearn-特征工程之特征选择
    链家网深圳租房信息分析报告
    test
  • 原文地址:https://www.cnblogs.com/chenyishi/p/10654435.html
Copyright © 2011-2022 走看看