Restframework 分页器 Pagnation 组件实例-5

本文介绍如何在Django Rest Framework(DRF)中实现自定义分页逻辑及序列化处理,通过创建自定义分页类并设置每页显示数量、页数参数等属性,同时展示如何使用序列化器进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

分页逻辑

from rest_framework.pagination import PageNumberPagination

class BookView(APIView):

    # authentication_classes = [UserAuth]

    # permission_classes = [SVIPPermission]

    # throttle_classes = [VisitThrottle]

    # renderer_classes = []

    def get(self,request):
        '''
        查看所有书籍
        :param request:
        :return:
        '''

        class MyPageNumberPagination(PageNumberPagination):
            page_size=2
            page_query_param="page_num"
            page_size_query_param="size"
            max_page_size=5


        print(request.user,request.auth)

        book_list=Book.objects.all()

        pnp=MyPageNumberPagination()

        paged_book_list=pnp.paginate_queryset(book_list,request)

        serializer=BookSerializer(paged_book_list,many=True)

        return Response(serializer.data)

    def post(self,request):
        '''
        添加一条书籍
        :param request:
        :return:
        '''
        print(request.data)

        serializer=BookSerializer(data=request.data,many=False)

        if serializer.is_valid():
            serializer.save() # create操作

            return Response(serializer.data)
        else:
            return Response(serializer.errors)

  

 

 

转载于:https://www.cnblogs.com/mengbin0546/p/9687410.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值