前言
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
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/p/16307609.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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的缓存实现