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

news2024/9/24 7:19:38
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 OrderedDict

from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response


class 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 MyPageNumberPagination

class UsersView(ListAPIView):
    pagination_class = MyPageNumberPagination
    serializer_class = UsersSerialize
    # 获取queryset时需要进行排序否则会有报错提示
    queryset = models.User.objects.filter(is_staff=False).all().order_by('-date_joined')
4. 路由
from meiduo_admin.user.user_views import UsersView

urlpatterns = [

    # 获取用户
    path('users/', UsersView.as_view()),
]
5. postman返回结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java对接homeassistant实现远程控制(配置frp实现内网穿透)

Home Assistant API文档 https://dev-docs.home-assistant.io/en/master/ 这里是设备的基本前缀 以下是Home Assistant的全部设备前缀及代表的设备类型:1. air_quality:空气质量监测器设备; 2. alarm_control_panel:报警面板设…

科普丨语音芯片的宽电压设计作用

语音芯片的宽电压设计具有以下几个作用: 1. 适用范围广,适应性强。宽电压设计使语音芯片能够在不同电压范围内工作,从而适应电源供电系统的不稳定性。无论是在低电压还是高电压情况下,宽电压设计可以确保语音芯片正常工作&#x…

内存泄漏问题,4种智能指针(介绍+模拟实现)

目录 内存泄漏 介绍 分类 堆内存泄漏 系统资源泄漏 检测内存泄漏的方式 智能指针 引入 介绍 原理 引入 RAII原则 指针性质 拷贝 auto_ptr 介绍 代码 boost库 unique_ptr 介绍 代码 shared_ptr 介绍 删除器 代码 问题(循环引用) weak_ptr 介…

Visual Studio 2019部署桌面exe(笔记)

一、使用Visual Studio自带的Publish功能 上述两张图片一般会自动加载,只需要查看一下即可。 签名问题: 生成exe执行文件 双击setup.exe 桌面生成(默认图标) 换图标: 对应桌面生成的exe

10个免费的logo设计神器

logo是标志或商标的英文声明,是指企业为自己设计logo的行为。随着技术的发展,许多logo设计在线生成器已经在互联网上诞生,供您使用和参考。通过图像logo设计,消费者可以记住公司的业务或品牌文化,并发挥识别和推广的作…

最新校园说明会日程安排-ABeam(德硕)旗下艾宾信息技术开发(上海) 德硕管理咨询(深圳)

艾宾信息技术开发(上海) 2024校园招聘 招聘岗位 公司介绍 福利待遇 联系我们 行程一览 华东理工大学校园宣讲会 日期:2023年10月23日(周一) 时间:14:00-16:00 地点:上海市徐汇区梅陇…

语雀崩了,免费送VIP6个月,赶紧薅!!

一、前言 在一个无聊的周一,下午浑浑噩噩的时候,一条公众号信息引起我的关注。 什么东西?语雀这种量级的产品也能崩? 看了一下还真是官方公众号发的!! 心里不由得出现,完蛋整个团队要打包遣…

Python武器库开发-面向对象篇(五)

面向对象篇(五) 面向对象编程 是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的通用行为。基于类创建对象 时,每个对象都自动具备…

Android Studio 查看Framework源码

1、背景 安卓系统源码量很庞大,选择好的开发工具和方式去开发可以提升开发效率,常用的开发工具有Source Insight 、Visual Studio Code、Android Studio,vscode适合C和C代码开发,java层代码无法跳转和提示,因此&#…

Java——关于实现多线程的测试小题,帮助我们更好的理解多线程的使用方法

前面讲解了关于多线程的使用方法,这篇文章则是进行实战,做几道测试题。 感兴趣的情况下可以看一下Java多线程 多线程练习1 (卖电影票) 一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒要求:请用多线程模拟卖票过程并打印剩余电影…

37 深度学习(一):查看自己显卡的指令|张量|验证集|分类问题|回归问题

文章目录 查看自己显卡的指令框架选什么张量的阶数验证集存在的意义分类问题一般的全连接的代码格式(板子)上面训练的详解一些省略梯度消失和梯度爆炸Dropout 回归问题一般回归的全连接的板子 batch-size超参数搜索策略 此系列的深度学习主要是理论性的介…

Linux docker 安装 部署

docker 安装 linux系统离线安装docker 如何使用docker部署c/c程序 常用命令 给予 docker 访问 gui 的权限 在 /etc/profile 末尾添加 if [ "$DISPLAY" ! "" ] thenxhost fi在执行 更新 source /etc/profiledocker下载镜像 docker search gcc #搜索d…

EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

一、准备阶段 POE交换机欧姆龙PLC 支持EtherNet Ip协议CX-Programmer 9.5配置软件 二、配置读卡器 1、打开软件 2、选择网卡,如果多网卡的电脑请注意对应所接的网卡,网卡名一般为“Network adapter Realtek PCIe GBE Family” 3、点击“选择网卡”&…

数据可视化报表分享:区域管理驾驶舱

在零售数据分析中,区域管理驾驶舱报表是用来分析企业运营数据,以制定销售策略和提高利润。因此这张报表需要整合大量数据,数据整合、分析、指标计算的工作量极大,在讲究高效率、高度及时性的大数据时代,BI数据可视化分…

APP上架怎么避免麻烦应对解决方案和替代方案

在当今数字化的时代,应用程序已成为现代生活中连接人与科技的桥梁。各个行业精准地抓住这一趋势,踊跃地推出自家APP,为用户提供一站式的便捷服务。然而,APP上架的过程并非一帆风顺。许多开发者会在上架过程中遇到麻烦,…

DC电源模块的短期过载能力

BOSHIDA DC电源模块的短期过载能力 DC电源模块是一种专门用来将交流电源转换为稳定直流电源的电子元件,适用于各种场合,如电子产品制造、通信、无线电、医疗等。在使用DC电源模块时,短期过载能力是考察其质量的重要指标之一。 短期过载能力…

共赢未来 | 大势智慧与安康市自然资源信息科技有限公司达成战略合作

10月17日至18日,安康市自然资源信息科技有限公司总经理黄光俊带领技术团队到武汉大势智慧科技有限公司围绕“实景三维中国、数字化建设”开展交流调研,并签署战略合作协议。 双方表示将以市场需求为导向,以技术创新为依托,建立长期…

nginx 动静分离 防盗链

一、动静分离环境准备静态资源配置(10.36.192.169)安装nginx修改配置文件重启nginx 动态资源配置(192.168.20.135)yum安装php修改nginx配置文件重启nginx nginx代理机配置(192.168.20.134)修改nginx子自配置文件重启nginx 客户端访问 二、防盗链nginx防止…

使用非空断言解决Typescript报错:对象可能为 “null“

现象如下: 解决办法:在报错的属性后面加惊叹号!, 也就是非空断言 问题解决:

01.5.Binding

参考JusterZhu视频和文档 <TextBox.Text><Binding Path"GivenName" UpdateSourceTrigger"PropertyChanged" Mode"TwoWay"><Binding.ValidationRules><local:AgeRangeRule></local:AgeRangeRule></Binding.Val…