python_django_分页
分页:把从数据库中的数据分为多页在客户端显示。
在django中,可通过这两个对象来实现:
- Paginator对象
- Page对象
Paginator对象与Page对象的关系:
paginator对象调用自身的page方法就会生成page对象(一页就是一个page对象)
一、Paginator对象
1.创建对象
Paginator(要分页的列表,每一页的条数(对象个数))
2.属性
| count | 对象总数(一页多少条) |
| num_pages | 页面总数 |
| page_range | 页面列表,页码从1开始 |
3.方法
- page(num):获取page对象,num就是获得的页码,如果提供的页码不存在会抛出'InvalidPage'异常
4.异常
| InvalidPage | 当向page()传递的是一个无效的页码时抛出 |
| PageNotAnInteger | 当向page()传递的不是一个整数时抛出 |
| EmptyPage | 当向page()传递一个有效值,但是该页面没有数据时抛出 |
二、Page对象
1.创建对象
- 不需要手动创建,由Paginator对象调用page()方法返回得到Page对象
2.属性
| object_list | 当前页面上所有数据(对象)列表 |
| number | 当前页的页码值 |
| paginator | 引用生成page对象的paginator对象 |
3.方法
| has_next() | 判断是否有下一页,若有返回True |
| has_previous() | 判断是否有上一页,若有返回True |
| has_other_pages() | 判断是否有上一页或下一页,若有一个有返回True |
| next_page_number() | 返回下一页的页码,若下一页不存在抛出'InvalidPage'异常 |
| previous_page_number() | 返回上一页的页码,若上一页不存在抛出'InvalidPage'异常 |
| len() | 返回当前页的数据(对象)个数 |
举个栗子:
对应view.py文件
# 分页
from django.shortcuts import render
from .models import Students
from django.core.paginator import Paginator
def studentpage(request,pageid):
# 所有学生列表
allList = Students.stuObj.all()
paginator = Paginator(allList,4) # 分为几页
page = paginator.page(pageid) # 每次拿一页
return render(request,'myapp/studentpage.html',{'students': page})
对应url.py文件
url(r'studentpage/(\d+)/$', views.studentpage),
对应html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生分页显示</title>
</head>
<body>
<ul>
{% for stu in students %}
<li>
{{stu.name}}--{{stu.age}}
</li>
{% endfor %}
</ul>
<ul style="list-style-type:none">
{% for i in students.paginator.page_range %}
{% if i == students.number %}
{{ i }}
{% else %}
<li style="border:1px solid black; display:inline;">
<a href="/sunck/studentpage/{{i}}/" style="text-decoration:none;padding:2px;">{{i}}</a>
</li>
{% endif%}
{% endfor %}
</ul>
</body>
</html>
效果:

python_django_分页的更多相关文章
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...
- js实现前端分页页码管理
用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评! 首先先看效果图: 这是 ...
- JdbcTemplate+PageImpl实现多表分页查询
一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...
- MVC如何使用开源分页插件shenniu.pager.js
最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...
- NET Core-TagHelper实现分页标签
这里将要和大家分享的是学习总结使用TagHelper实现分页标签,之前分享过一篇使用HtmlHelper扩展了一个分页写法地址可以点击这里http://www.cnblogs.com/wangrudo ...
- 套用JQuery EasyUI列表显示数据、分页、查询
声明,本博客从csdn搬到cnblogs博客园了,以前的csdn不再更新,朋友们可以到这儿来找我的文章,更多的文章会发表,谢谢关注! 有时候闲的无聊,看到extjs那么肥大,真想把自己的项目改了,最近 ...
- php实现的分页类
php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...
- C#关于分页显示
---<PS:本人菜鸟,大手子还请高台贵手> 以下是我今天在做分页时所遇到的一个分页显示问题,使用拼写SQL的方式写的,同类型可参考哦~ ------------------------- ...
- JAVA 分页工具类及其使用
Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...
随机推荐
- Windows下搭建kafka
安装JDK,跳过 kafka依赖zookeeper,此处zookeeper安装跳过 http://kafka.apache.org/downloadskafka下载地址 解压文件(我的目录是D:\mi ...
- bzoj 1176 cdq分治套树状数组
题面: 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Inp ...
- python中二维数组的建立,输入和输出
''' for循环: for i in range(x,y,dir): pass 首先这个区间是左闭右开 其次dir在省略的情况下默认为1,就是每次加一,也可以指定 python的数组: python ...
- 常见算法和数据结构存在的坑(updating)
数组: c++数组下标都+5会稳. 50005000的别开60006000. 二分: 实数二分可能因为神马精度问题出现了不满足二分序的情况,要小心. 注意二分完后,不能直接用当前数组里存的值,要pd( ...
- PHP filter_var_array() 函数
定义和用法 filter_var_array() 函数获取多个变量,并进行过滤. 该函数对过滤多个值很有用,无需重复调用 filter_var(). 如果成功,则以数组形式返回请求变量的值.如果失败, ...
- 【Flutter学习】之动画实现原理浅析(二)
1. 介绍 本文会从代码层面去介绍Flutter动画,因此不会涉及到Flutter动画的具体使用. 1.1 Animation库 Flutter的animation库只依赖两个库,Dart库以及phy ...
- 说下vue工程中代理配置proxy
这个代理配置不需要后台进行ngnix代理跳转了,前端可以做.在vue.config.js文件中进行配置,如下: module.exports = { publicPath: process.env.V ...
- 使用html5进行视频播放
一直以来网页大多是使用 flash 来播放视频.在目前唱衰 flash 的环境下,HTML5 为我们带来了一个网页内视频播放的解决方案—— <video>标签. 在HTML5 中,可以通过 ...
- 用orm操作sql数据库的优缺点
一,sql注入问题 二,代码和sql写死在了一起,导致解耦差 三,sql开发人员水平不一,导致sql性能问题 四,开发效率差 使用orm的优点: 一,实现了代码与sql数据的解耦合 二,不需要写原生s ...
- 过滤PostgreSQL配置文件中被注释的部分
以下正则可以过滤掉PostgreSQL配置文件被注释的部分,包括'#'前带空格的部分,但参数前带空格的部分不会过滤掉 postgres@linux-ij7j:/opt/pg8122/data> ...