前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django Rest Framework 分页(下)

Django Rest Framework 分页(下)

作者头像
小团子
发布2019-07-18 14:54:57
5470
发布2019-07-18 14:54:57
举报
文章被收录于专栏:数据云团数据云团

Django Rest Framework 分页(中)

一、使用加密分页

使用加密分页的原因:如果使用普通分页时,由于向用户提供了可选参数 page,用户可以直接跳到数据分页之后的任意页码。但是这样做的后果就是,数据库的负载变大,返回结果的效率缓慢。但是一旦使用加密之后,虽然提供可选参数 cursor,但是对页码进行加密,用户无法知道当前页,而是以上一页下一页的方式翻阅数据。有效避免了数据库的负荷。但是就需要向用户提供上一页下一页的 url。

① 自定义分页类

  • default_limit:表示默认每页显示几条数据;
  • cursor_query_param:表示 url 中页码的参数;
  • page_size_query_param:表示每页显示数据量的参数;
  • max_page_size:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃;
  • ordering:表示返回数据的排序方式

② 视图

  • 首先需要实例化定义的分页类
  • 并且对实例化类进行传参控制
  • 最后将分页后的对象作序列化
  • 由于要给用户提供可用的上下页接口,所以只能用 return page.get_paginated_response(roles_ser.data) 做返回。

二、总结

三种分页中 Django Rest Framework 分页(上),普通分页与 django 中的分页基本没有区别。不过要做分页返回给前端数据,就要从数据库中取出数据,然后再做分页序列化。如果用户一下在前几页请求数据库中的最后几页数据,对查询数据库的延时,对数据库的负载较大,就会出现问题,这个时候就可以使用加密分页,限制用户的访问,只提供前一页和后一页的接口。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档