首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Django Rest Framework 分页(下)

Django Rest Framework 分页(下)

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

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 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档