django: django rest framework 分页

Python 100天,从新手到大师——Django REST Framework进阶:掌握CBV、数据分页与筛选(day55) 本文深入讲解了Django REST Framework的高级特性,主要包括:1)基于类的视图(CBV)进阶,包括APIView子类详解和自定义通用视图行为;2)ModelViewSet的一站式CRUD实现;3)数据分页策略,如基本分页、偏移分页和游标分页;4)数据筛选技术,从简单过滤到复杂查询;5)视图集与路由器的自动化API端点生成。通过学习这些高级特性,开发者可以显著提升API开发效率和代码质量,构建更加强大、灵活的RESTful API服务。 阅读详情

django rest framework pagination

在drf中对于数据的返回支持多种分页技巧,在官网中主要向我们介绍了PageNumberPagination、LimitOffsetPagination、CursorPagination。

本课程的讲解使用示例项目,该项目的目录结构如下所示:
这里写图片描述

目录结构

该目录结构与django原生的目录结构差异较大,其中所有的django应用都在apps目录中,目前拥有assets和rbac两个应用。conf内存放的是urls,py和wsgi.py文件,在settings目录中写入了该项目的配置文件base.py。

对于drf的分页可以采用全局配置和对每个视图进行单独配置的方法。

如果采用全局配置需要在配置文件中设置,例如将全局分页设置为PageNumberPagination,需要在base.py中添加如下配置:

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 100
}

如果需要对每个视图进行单独配置,需要设置ModelViewSet中的pagination_class值,示例如下:

class MachineRoomViewSet(viewsets.ModelViewSet):
    """
    机房操作视图
    """
    queryset = MachineRoom.objects.all()
    serializer_class = MachineRoomSerializer
    pagination_class = PageNumberPagination

下面分别介绍这三个的使用方法:


PageNumberPagination

此分页样式在请求查询参数中接受单个号码页码。用户可以指定访问的页数,示例如下:

GET ht
django-rest-framework实现三种分页 我们通常在使用Django为前端或者用户提供接口的时候,时常会遇到返回大量数据信息的情况,比如:有1000条用户信息,有1000条新闻文章,有1000条商品信息等等。但是我们不可能将所有数据从数据库获取后一股脑的全部返回,这样相当不好,会增大服务器压力,同时也会增加前端渲染压力,也不方便前端或者用户使用。 这种情况下,我们就需要用到分页处理。顾名思义,就是将大量数据进行分页,每页只有少量数据,在... 阅读详情

相关推荐

Django REST Framework 3.17.1 与 Django 6.0 版本兼容性配置:3个关键设置项解析

本文详细解析了Django REST Framework 3.17.1与Django 6.0版本兼容性的3个关键配置项,包括REST_FRAMEWORK字典设置、INSTALLED_APPS依赖管理以及异步兼容性优化。通过精准调整这些配置,开发者可以避免版本冲突,充分发挥DRF在API构建中的强大功能。

weixin_30596023的博客 369

python-DRF_自定制过滤器_分页器Pagination_异常处理_封装Response对象_自动生成接口文档

DRF-Django rest framework 1. 自定制过滤器 # 自定制过滤器 (源码流程) 查询所有才会有过滤 ==> list才需要过滤 ==> queryset = self.filter_queryset(self.get_queryset()) ==> GenericAPIView ==> filter_queryset # filter_queryset方法 def filter_query

qq_31455841的博客 772

drf在构建分页链接时如何将http替换成https

我们覆盖了 get_next_link 和 get_previous_link 方法,在获取链接后,通过 replace 方法将链接中的 ‘http://’ 替换为 ‘https://’。这样,当 DRF 在分页结果中生成上一页和下一页链接时,会自动替换链接中的 ‘http://’ 为 ‘https://’,从而确保链接使用 HTTPS 协议。请注意,在使用此方法时,确保您的 Django 项目已正确配置为使用 HTTPS,包括正确的 SSL/TLS 证书和服务器配置。

weixin_38997465的博客 413

drf:过滤Filtering、排序OrderingFilter、异常处理Exceptions、分页Pagination、自动生成接口文档

目录一、 一、

大大的博客 689

Django丨REST framework

REST framework一、引入Django REST framework1.Web应用模式三级目录二、DRF工程搭建三、Serializer序列化器1.定义Serializer2.序列化使用3.反序列化使用4.模型类序列化器ModelSerializer四、视图五、其他功能 一、引入Django REST framework 1.Web应用模式 三级目录 二、DRF工程搭建 三、Serializer序列化器 1.定义Serializer 2.序列化使用 3.反序列化使用 4.模型类序列化器ModelS

weixin_40687614的博客 4461

Django REST framework 中文文档

Django REST framework 中文文档 本人博客:Django REST framework 中文文档,跟官网布局基本一致,更直观。 如果本文对您有所帮助,请在 github 上 star 该项目。 版本说明 这是 Django REST framework v3 版本的中文翻译文档。 djangorestframework v3.8.2 django 2.0.6 python 3...

Nancy 博客 6988

Django笔记 Django REST Framework实现Web API 1

本文介绍如何使用Django的REST框架来迅速开发WEBAPI。 ##Django REST Framework Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API。

KSY的博客 1万+

Django REST framework API开发

REST介绍RESTful API 设计实现API的两种方式FBV 视图函数urlpatterns = [ url(r'^user/$', views.user), url(r'^user/add/$', views.user_add), url(r'^user/edit/(\d+)/$', views.user_edit), url(r'^user/del/(\d+

Ayhan_huang的博客 4717

09【全栈进阶】Django REST Framework API设计:15个专业技巧构建企业级REST服务

在当今的Web开发生态中,API已不再是可选功能,而是应用架构的核心组件。一个设计良好的API不仅能支持多种前端(Web、移动端、桌面应用),还能实现系统间的无缝集成,催生新的业务场景。Django REST Framework (DRF)作为Python生态系统中最成熟的API开发工具,提供了构建专业REST API所需的全套功能。然而,从基础实现到企业级API架构,中间存在着巨大的鸿沟。本文将深入探讨DRF的高级特性与设计模式,帮助你构建安全、高效、可扩展的API服务。REST (Representat

熵数实验室 2152

django: django rest framework 数据的查找、过滤、排序

django: django rest framework 数据的查找、过滤、排序 对于管理系统,常常需要展示列表数据,我们对于列表内的数据常常需要查找、过滤、排序等操作,其中查找等操作大部分是在后台进行的。django rest framework可以轻松的实现数据的查找、过滤等操作。接下来我们将以实际的例子进行介绍。 示例代码github地址:https://github.com/ji...

linux_player_c(系统&开发) 1万+

Django Rest Framework(挑战DRF最全文档致敬武沛齐)

DRF 文档

不许人间丶见白头 1724

【Dv3Admin】工具JSON响应配置文件解析

模块基于 DRF 的 Response 类扩展,固定 code、msg、data 格式,针对列表返回附加分页信息,单条数据返回精简结构,错误处理统一异常输出。封装后保持良好的兼容性与扩展性,简化接口开发流程,提升前后端联调效率。分页字段默认强制输出,即使无分页需求也附加 page、limit 字段,增加数据冗余。错误返回格式灵活性不足,难以支持复杂异常层级分类。若重写,可增加分页信息的可选注入机制,细化错误码体系,适配更多业务场景。

Mr数据杨 1134

Django之rest_framework(九)

不推荐使用全局,因为全局配置会让项目的所有视图(复合使用规范)采用分页。在分页还可以使用一个类:LimitOffsetPagination。REST framework提供了分页的支持。但往往并不是所有视图都需要分页!视图类自定义Pagination类。视图类view.py,指定分页类。

Calor13的博客 327

Unity3D 集成 SQLite 数据库实战:从零搭建到数据可视化

本文详细介绍了在Unity3D项目中集成SQLite数据库的完整实战流程。从SQLite的轻量、稳定、易用特性讲起,逐步指导开发者完成环境配置、驱动集成、C#脚本编写(涵盖连接、建表、增删改查),并进阶演示了数据模型封装与在Unity UI中实现数据可视化的方法。最后提供了多线程访问、路径差异、性能优化等关键避坑指南,帮助开发者构建可靠高效的本地数据管理方案。

weixin_29291069的博客 91

力扣(Leetcode)第1题:两数之和(C语言版本)

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6

qq_39855356的博客 3295

【Milvus】实战指南:利用milvus-backup实现高效数据备份与恢复

本文详细介绍了如何利用官方工具milvus-backup为Milvus向量数据库实施高效的数据备份与恢复。文章从备份的必要性出发,逐步讲解了环境准备、配置要点、全量与按需备份操作,以及恢复数据的关键步骤和验证方法,旨在帮助用户构建可靠的数据安全防线,应对误操作或系统故障风险。

weixin_29217235的博客 129

Unity UI Toolkit避坑指南:从官方Samples到实际项目,这些‘坑’我帮你踩过了

本文分享了Unity UI Toolkit在实际项目中的避坑经验和优化技巧,包括动画系统的高效替代方案、3D世界UI的创新实现方式、USS样式继承的反直觉规则等。通过详细的代码示例和性能优化策略,帮助开发者避免常见陷阱,提升开发效率。

weixin_29535577的博客 342

YOLO26改进策略【YOLO和Mamba】| MLLA:Mamba-Like Linear Attention,融合Mamba设计优势的注意力机制

本文记录的是利用模块优化的目标检测网络模型。模块具有独特优势。它不同于传统模块,能同时兼顾局部特征高效建模与长距离交互学习。常见模块要么在局部特征处理上有优势但长距离交互能力弱,要么反之,而模块克服了此问题。它融合了Mamba模型和线性注意力机制的优势,通过独特的结构设计,能够在保持计算效率的同时,精准地建模局部特征并学习长距离交互信息。本文将其用于的模型改进和二次创新,能够更加关注图像中的重要特征区域,抑制背景等无关信息的干扰,从而突出目标物体的关键特征。Demystify Mamba in Vision

Limiiiing的博客 213

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8158

2026年03月CCF-GESP编程能力等级认证Scratch图形化编程一级真题解析

本文收录于《,订阅后可阅读专栏内所有文章。

人生就是一个不断学习的过程 238

Autosar PWM模块的配置和使用

在上面的代码中,我们首先配置了PWM的初始化参数,包括频率和分辨率。GPIO Driver:由于PWM信号需要输出到特定的引脚上,因此我们还需要使用GPIO驱动程序来控制引脚的状态。通过合理配置和应用PWM模块,我们可以实现对汽车电子系统中各种功能的精确控制,从而提高汽车性能和用户体验。在实际应用中,我们可以根据需要进行更多的配置和调整,以实现灵活的PWM控制。PWM Driver:这是主要的PWM驱动程序,负责产生PWM信号并输出到相应的引脚上。接下来,我们需要配置PWM模块的参数。

TcData的博客 679

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: kubernetes学习: 8.安装flannel插件
下一篇: django: django rest framework Viewsets 和 Serializers
linux_player_c
博客等级 码龄13年 214粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值