django drf pagination 自定义返回数据格式

本文介绍如何在Django Rest Framework中自定义PageNumberPagination的返回数据格式,将默认的'results'字段改为'data',以匹配前端接口需求。通过继承并修改分页器类,并在settings中配置,可以实现分页数据的定制化处理。
摘要由CSDN通过智能技术生成

在使用Django rest_framework下 需要自定义前端返回数据的格式

比如说 使用PageNumberPagination 时返回的数据在results中 但是前端用的都是data 前端接口数量多的时候就比较麻烦了

 

在此之前 你应当和我一样 知道了 使用get方式请求def的接口;同时本文只在自己用的PageNumberPagination 上作修改 其他的分页器 没有测试

其他表述

  • drf 自定义返回数据格式
  • 自定义分页数据格式
  • 自定义分页改
  • 更改默认Pagination返回的results

处理方式

对于前端请求的格式 如果是 url?current=1&pageSize=10 来表示页面的数量 后端默认的是page;通过继承类来完成定义

from rest_framework.pagination import PageNumberPagination 
class AdaptPagination(PageNumberPagination):
    page_size = 15# 每页数目
    page_query_param = 'currrent' #前端发送的页数关键字名,默认为"page"
    page_size_query_param = 'pageSize'# 前端发送的每页数目关键字名,默认为None
    max_page_size = 100#前端最多能设置的每页数量

之后再setting中配置使用的分页器

REST_FRAMEWORK = {
    //.....
    'DEFAULT_PAGINATION_CLASS':  &#
Django REST framework(DRF)是一个强大且灵活的工具,用于构建Web API。它建立在Django这个高级的Python Web框架之上,提供了一套清晰、简单而且非常强大的工具来构建Web API。 入门DRF,首先需要了解Django的基础知识。Django是一个开源的高级Web框架,鼓励快速开发和干净、实用的设计。熟悉Django之后,你可以开始学习DRF。以下是入门到精通的一些步骤: 1. 安装DRF:通过Python的包管理工具pip来安装DRF。在命令行中运行`pip install djangorestframework`。 2. 配置DRF:在Django项目的`settings.py`文件中添加`rest_framework`到`INSTALLED_APPS`列表中。 3. 创建序列化器:序列化器(Serializers)用于将模型实例转换成JSON格式的输出,以及将JSON格式的输入转换回Python的数据类型。在DRF中,序列化器是处理数据转换的核心。 4. 编写视图:DRF提供了许多内置的视图类,比如`APIView`、`ListAPIView`、`RetrieveAPIView`等,可以方便地处理请求和响应。自定义视图类来添加业务逻辑。 5. 定义URL路由:在Django的`urls.py`文件中定义API的URL路由,并将它们关联到相应的视图上。 6. 测试API:使用DRF提供的测试客户端进行API的测试。 精通DRF需要对以下几个方面有深入的理解和实践: 1. 视图集(ViewSets):视图集提供了一种方便的方式来编写一组相关的视图。DRF将相关的逻辑组织在一起,使得代码更加模块化和可重用。 2. 权限(Permissions)和认证(Authentication):管理API的安全性,确保只有合适的用户才能访问和修改数据。 3. 分页Pagination):在API中实现分页,提高数据的传输效率和用户的交互体验。 4. 自定义行为:包括自定义过滤器、解析器、异常处理、版本控制等高级特性,以适应复杂的业务需求。 5. 性能优化:包括序列化器字段的选择、查询集的优化、缓存策略等,以提高API的性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值