rest_framwork中ApiView实现分页
from rest_framework.pagination import PageNumberPagination
from .serializers import BookSerilizer
from .models import BookInfo
from rest_framework.views import APIView
# Create your views here.
class MyPageNumberPagination(PageNumberPagination):
page_size=2 #默认两个
max_page_size = 5 #一页显示最大5个
page_query_param = 'page' #页码 class Pager1View(APIView):
def get(self,request):
#获取所有数据
roles = BookInfo.objects.all()
#创建分页对象
pg = MyPageNumberPagination()
#在数据库中获取分页数据
pager_roles = pg.paginate_queryset(queryset=roles, request=request,view=self)
#对分页数据进行序列化
ser = BookSerilizer(instance=pager_roles, many=True)
return pg.get_paginated_response(ser.data) #返回上一页或者下一页
html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="/static/js/jquery-3.2.1.js"></script>
</head> <body>
<h2>书籍管理</h2>
<div id="context">
<ul id="items"></ul> <button id="prev">上一页</button>
<button id="next">下一页</button>
</div>
</body> <script type="text/javascript">
//页面初始化加载
$(function () {
every_page()
}); //页码循环函数
function every_page(page_url='/books/?page=1') {
$.get(
page_url,
function (data) {
$('#items').empty();
$('#next').attr('next_page',data['next']);
$('#prev').attr('prev_page',data['previous']); $.each(data['results'],function (index,val) {
$('#items').prepend('<li>书名:'+val.bname+',作者:'+val.author+'</li>')
})
}
)
} //下一页点击事件
$('#next').on('click',function () {
var next_page = $(this).attr('next_page');
//取不到就是 undefined
if (next_page != undefined){
every_page(next_page)
}
}); //上一页点击事件
$('#prev').on('click',function () {
var prev_page = $(this).attr('prev_page');
//取不到就是 undefined
if (prev_page != undefined){
every_page(prev_page)
}
}) </script>
</html>
rest_framwork中ApiView实现分页的更多相关文章
- drf-day8——断点调试、认证.权限.频率的源码分析、基于APIView编写分页、全局异常处理
目录 一.断点调试使用 二.认证,权限,频率源码分析(了解) 2.1 权限类的执行源码 2.2 认证源码分析 2.3 频率源码分析 2.4 自定义频率类(了解) 2.5 SimpleRateThrot ...
- Django框架之drf:8、断点调试,权限、认证、频率组件源码分析,基于APIView编写分页,异常处理
Django框架之drf 一.断点调式使用 指,在我们编写代码的时候,程序运行出现报错是无可避免的,当程序 出现报错时,我们需要找到出现报错的代码进行修改,如果时简短的代码很容易就可以找到报错位置 ...
- drf-三大认证源码分析、基于APIView编写分页、异常处理
1.权限源码分析 1.APIView源码497行:self.initial(request, *args, **kwargs)中进行了三大认证. 2.在initial的源码中,以下三行代码是进行三大认 ...
- SpringMVC结合easyUI中datagird实现分页
SpringMVC结合easyUI中datagird实现分页 DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.轻量级,单元格合并.多列标题.冻结列和页脚只是其中 ...
- sf中标准的分页功能介绍
世上本无事,庸人自扰之.我喜欢一个相对比较安静的环境去学习和工作,希望在一个掉一根针的声音都能够听到的环境中,但是有时候往往相反,一片嘈杂,我改变不了周围的环境,只能改变自己,其实这些都没有什么,也许 ...
- asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题
刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...
- winform中DataGridView实现分页功能
WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载) 转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...
- 项目中的一个分页功能pagination
项目中的一个分页功能pagination <script> //总页数 ; ; //分页总数量 $(function () { // $("#pagination"). ...
- Oracle中的SQL分页查询原理和方法详解
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006
随机推荐
- XML文件中“>”和“<”的转码
在xml文件中,大于号“>”和小于号“<”是不能被直接识别的,需要经过转码才可以被识别,转码后的格式如下: < < 小于 > > 大于
- JS获取页面数据执行Ajax请求
下面这个例子展示了如何使用js获取页面中元素的值,并且将这些值作为参数执行Ajax请求. $("#submit-task").bind("click", fun ...
- 整理出一个比较实用的SqlHelper类 满足大多数情况的使用
/// <summary> /// SqlHelper类 by zy 2016-3-11 /// </summary> public sealed class SqlHelpe ...
- java基础之多线程二:多线程实现方式
方式一: 继承Thread类. /* * main函数也叫主函数(也叫主线程), * 因为所有代码的执行都是从这里开始的. */ public static void main(String[] ar ...
- ms project设置行高
1.取消某列的自动换行右击“任务名称”——自动换行 2.全选所有任务点击左上角单元格 3.设置所有行的行高点击任意行最左边单元格的下边框,向上拖放 4.ok
- ASP.NET MVC 和 WebForm的权限控制
今天主要讲一下对于ASP.NET的页面级权限控制 数据结构:用户表.角色表.权限表.角色权限派生表 为用户添加权限的数据配置后, 自定义类对MVC继承Controller 对其内置方法Initiali ...
- 【HDU6026】Deleting Edges
题意 有一个n个节点的无向图,结点编号从0-n-1,每条边的长度时1to9的一个正整数.现在要删除一些边(或者不删),使得到的新图满足下面两个要求. 1.新图是一颗树有n-1条边2.对于每个结点v(0 ...
- 前端性能分析:分析百度和sogou
先用httpwatch录制这两个网站:www.baidu.com www.sogou.com 由上图可以看到: 百度用时0.278s 发送7831B 接收36620B 13个请求 搜狗 ...
- Memcached 原理
memcached 是以一个守护进程的方式运行于一个服务器和多个服务器之间的,等待接受客户端的连接操作,客户端可以有各种语言编写.(例如PHP). php 在客户端与服务器建立连接以后,接下来的事情 ...
- 13-STL-二分查找
STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range STL包含四种不同的二分查找算法,binary_search ...