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 ...
随机推荐
- jquery 数组添加不重复数据
var columnCommentsArray = new Array(); $("input[name='columnComments']").each( function(){ ...
- 【POJ 3714】 Raid
[题目链接] http://poj.org/problem?id=3714 [算法] 分治求平面最近点对 [代码] #include <algorithm> #include <bi ...
- LuoguP4246 [SHOI2008]堵塞的交通
https://zybuluo.com/ysner/note/1125078 题面 给一个网格,每次把相邻两点连通性改为\(1\)或\(0\),询问两点是否联通. 解析 线段树神题... 码量巨大,细 ...
- eclipse ------validation功能
今天来讲讲eclipse 的validation功能,该功能用于检测代码存在的“潜在”问题,比如:JSP文件的语法错误,XML中的schema错误等,这么好的功能还有什么可讲的呢,我今天要讲的是val ...
- [Swift通天遁地]三、手势与图表-(5)创建带有标题、图例、坐标轴的柱形图表
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Akka源码分析-Remote-收发消息UL图
- JSP执行原理图
- 327 Count of Range Sum 区间和计数
Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...
- JQuery 记第N次被坑 - ajax请求字符集问题
前言:两个功能差不多的页面,都是使用$.post()请求后台,页面A传递到后台的中文参数正常,页面B传递到后台的中文参数则为乱码 分析过程: ①使用chrome的开发者工具,分析两个页面的ajax请求 ...
- JVM中线程状态转换图
JVM中线程的状态转换图 线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该 ...