随笔 - 446  文章 - 17 评论 - 3 阅读 - 14万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

前言

rest framework中提供了三种分页模式:
from rest_framework.pagination import 
PageNumberPagination, LimitOffsetPagination, CursorPagination
在我的项目中我使用的是PageNumberPagination
在全局配置文件,在用到的使用才会引入,有点像配置文件
REST_FRAMEWORK = {
    
    'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE':20,
    
}

去实现

1
2
3
4
5
6
7
8
9
10
11
12
class text_list(APIView):
    """
    get: 获取列表页
    """
    def get(self, request):
        coin_model=models.objects.all().order_by("-id")
        //使用继承的方式实现分页对象
        pg = MyPageNumberPagination()
        objs = pg.paginate_queryset(coin_model, request,self)
        ser = serializers.Serializer(objs, many=True)
        data=pg.get_response_data(ser.data, 'list')
        return response_util.ok(data=data)
复制代码
class MyPageNumberPagination(PageNumberPagination):
    page_size = 6
    max_page_size = 100
    page_size_query_param = 'page_size'
    page_query_param = 'page_index'def get_response_data(self, data, data_key='results', **kwargs):
        data = {
            'page_total': self.page.paginator.count,
            'page_index': self.page.number,
            'page_size': len(data),
            data_key: data
        }
        data.update(**kwargs)
        return data
复制代码
复制代码
from rest_framework import serializers
​
from . import models
​
class Serializer(serializers.ModelSerializer):
    class Meta:
        model = models.TokenTpl
        fields = [
        //序列化的字段,也就是要输出的字段
            'id','name'
        ]
 
复制代码

 

 

参考链接:

https://blog.csdn.net/fenglepeng/article/details/104699141

posted on   topass123  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2020-05-24 在线教育平台-全局配置页面(13)
2020-05-24 git的推送忽略(4)
2020-05-24 git分支与合并(3)
2020-05-24 git的基础用法(2)
2020-05-24 django的缓存实现
点击右上角即可分享
微信分享提示