Django REST framework 分页
三种分页:根据页码、根据索引、根据加密
http://www.xx.com/courses/?page=1&size=10
http://www.xx.com/courses/?offset=1&limit=10
http://www.xx.com/courses/?page=sdf651sdf3
# 页码越大查询速度越慢,为什么以及如何解决? 原因:页码越大,数据库需要扫描的行数越多,因为每次都是从0开始扫描。 解决:
1、直接限制显示的页数,比如就显示100页,往后翻都不看了;
2、记录当前页数据ID的最小值和最大值,再次分页时,根据ID现行筛选,速度非常快。 第一种简单粗暴,像百度、搜狗都是这样的;第二种就是使用了加密,即使懂
技术的也不知道?page=sdf651sdf3是第几页,不是你想跳到哪页就哪页的。
# urls.py
from django.conf.urls import url
from appxx import views urlpatterns = [
url(r"^authors/$", views.AuthorView.as_view()),
]
# serializers.py
from appxx import models
from rest_framework import serializers class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = models.Author
fields = "__all__"
# views.py
from appxx import models
from appxx import serializers
from rest_framework.views import APIView
from rest_framework import pagination class MyPageNumberPagination(pagination.PageNumberPagination):
page_query_param = "page" # URL参数名称
page_size = 2 # 每页显示多少条数据
page_size_query_param = "size" # page=2&size=3 --> 第二页显示4、5、6条的数据
max_page_size = 8 # 每页最多显示多少条数据 class AuthorView(APIView):
def get(self, request):
authors_list = models.Author.objects.all()
my_page = MyPageNumberPagination()
authors_page = my_page.paginate_queryset(queryset=authors_list, request=request, view=self)
s = serializers.AuthorSerializer(authors_page, many=True)
return Response(s.data)
# return pnp.get_paginated_response(s.data)
Django REST framework 分页的更多相关文章
- django: django rest framework 分页
django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战 版权声 ...
- 05 Django REST Framework 分页
01-分页模式 rest framework中提供了三种分页模式: from rest_framework.pagination import PageNumberPagination, LimitO ...
- Django Rest Framework(分页、视图、路由、渲染器)
一.分页 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a.记录当前访问页数的数据id 方式b.最多显示120页等 方式c.只显示上一页,下一页,不让选择页码,对页码进行加密 1.基于lim ...
- Django REST Framework - 分页 - 渲染器 - 解析器
为什么要使用分页? 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗时也会 ...
- Django rest framework(7)----分页
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- Django Rest framework 之 分页
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- Django Rest Framework源码剖析(七)-----分页
一.简介 分页对于大多数网站来说是必不可少的,那你使用restful架构时候,你可以从后台获取数据,在前端利用利用框架或自定义分页,这是一种解决方案.当然django rest framework提供 ...
- django rest framework实现分页功能
在web开发中很多需求都需要实现分页功能,然而 Django Rest Framework 自带的分页功能,只能在 mixins.ListModelMixin and generics.Generic ...
- [Django REST framework - 自动生成接口文档、分页]
[Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...
随机推荐
- LeetCode 541. Reverse String II (反转字符串 II)
Given a string and an integer k, you need to reverse the first k characters for every 2k characters ...
- shell curl 实现rest 并发测试
for i in {1..50}; do curl http://10.43.95.26:5812/rdk/service/app/example/server/my_service & do ...
- 什么是IaaS,PaaS和SaaS及其区别
云计算的三种服务模式:IaaS,PaaS和SaaS Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-a ...
- cloudstack ---部署的架构
cloudstack跟KVM一起部署的架构 下图是CloudStack跟kvm一起部署的架构: 在每个kvm的宿主机上都需要部署agent程序. cloudstack跟vsphere一起部署的架构 下 ...
- E20170805-hm
mechanize vt. 使机械化; 用机械装置;
- [Swift通天遁地]五、高级扩展-(12)扩展故事板中的元件添加本地化功能
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- IOS上微信在输入框弹出键盘后,页面不恢复,下方有留白,有弹窗弹出时页面内容感应区域错位
问题说明: ios中,键盘的弹起,页面会往上挪动,使输入框展示在页面中间,键盘隐藏页面会下挪恢复原状. 在微信移动端,ios页面不恢复,下方有留白. 收起键盘的瞬间,如果有弹窗弹出,此时时页面内容应区 ...
- Sublime Text Version 3.0,Build3143注册码
1.打开sublime text软件2.Help->Enter License3.复制以下BEGIN LICENSE和END LICENSE之间的部分,粘贴进去.(注意:不要复制BEGIN LI ...
- 【BZOJ2149】拆迁队(斜率优化DP+CDQ分治)
题目: 一个斜率优化+CDQ好题 BZOJ2149 分析: 先吐槽一下题意:保留房子反而要给赔偿金是什么鬼哦-- 第一问是一个经典问题.直接求原序列的最长上升子序列是错误的.比如\(\{1,2,2,3 ...
- [转]linux uniq 命令详解
转自:http://blog.csdn.net/tianmohust/article/details/6997683 uniq 命令 文字 uniq 是LINUX命令 用途 报告或删除文件中重复的 ...