当前位置: 首页 > news >正文

Django分页功能的使用和自定义分装

1. 在settings中进行注册
# drf配置
REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': (# 'rest_framework_jwt.authentication.JSONWebTokenAuthentication','rest_framework_simplejwt.authentication.JWTAuthentication','rest_framework.authentication.SessionAuthentication','rest_framework.authentication.BasicAuthentication',),# 分页设置'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination','PAGE_SIZE': 2
}
2. 在utils/myPagination.py中根据业务要求自定义分页返回结果
from collections import OrderedDictfrom rest_framework.pagination import PageNumberPagination
from rest_framework.response import Responseclass MyPageNumberPagination(PageNumberPagination):# 1. page_size_query_param默认为None,前端通过传入pagesize字段指定一页有多少数据page_size_query_param = 'pagesize'# 2. 限制最大页面数量,为了安全max_page_size = 100# 3. 重写响应值,根据前端想要的 响应字段def get_paginated_response(self, data):return Response(OrderedDict([('page', self.page.number),('pages', self.page.paginator.num_pages),('lists', data)]))
3. 在视图中使用
from meiduo_admin.utils.myPagination import MyPageNumberPaginationclass UsersView(ListAPIView):pagination_class = MyPageNumberPaginationserializer_class = UsersSerialize# 获取queryset时需要进行排序否则会有报错提示queryset = models.User.objects.filter(is_staff=False).all().order_by('-date_joined')
4. 路由
from meiduo_admin.user.user_views import UsersViewurlpatterns = [# 获取用户path('users/', UsersView.as_view()),
]
5. postman返回结果

http://www.lryc.cn/news/206758.html

相关文章:

  • React-hooks有哪些用法?
  • 2024年CFA一级公示表,一级quicksheet(内附分享链接)
  • 【Kubernetes】 Kubernetes 了解云原生的原理
  • 什么是jquery
  • 竞赛选题 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别
  • 新华三路由器+华为交换机,实现华为交换机指定端口访问外网
  • Java面试(JVM篇)——JVM 面试题合集 深入理解JVM虚拟机
  • NPDP产品经理证书是什么行业的证书?
  • 37 深度学习(一):查看自己显卡的指令|张量|验证集|分类问题|回归问题
  • 用C语言解决三个整数比大小,x,y,z三个整数求最小整数,从键盘上输入3个不同的整数×,y,Z,请设计一个算法找出其中最小的数,并画出流程图。
  • 操作系统进程调度算法的模拟实现(c语言版本)
  • webbench压测工具
  • HarmonyOS 音频开发指导:使用 OpenSL ES 开发音频播放功能
  • docker搭建个人镜像仓库
  • Python机器学习17——Xgboost和Lightgbm结合分位数回归(机器学习与传统统计学结合)
  • C#编程学习
  • 关于vue 父级不使用子级某模块 (插槽替换)
  • 睿趣科技:抖音小店在哪里选品
  • 量变引起质变:安卓改多了,就是自己的OS
  • IDEA 之 在不更改操作系统用户名的情况下更改 ${USER} 变量?
  • 基于JAVA的天猫商场系统设计与实现,springboot+jsp,MySQL数据库,前台用户+后台管理,完美运行,有一万五千字论文
  • Redis学习
  • uni-app:实现picker下拉列表的默认值设置
  • 基于NB-iot技术实现财物跟踪的EA01-SG定位模块方案
  • 挑战吧,HarmonyOS应用开发工程师
  • 图论05-【无权无向】-图的广度优先BFS遍历-路径问题/检测环/二分图/最短路径问题
  • uniapp:谷歌地图,实现地图展示,搜索功能,H5导航
  • 关于腾讯云轻量应用服务器性能测评,看这一篇文章就够了
  • HDFS集群NameNode高可用改造
  • Spark集群中一个Worker启动失败的排错记录