[Django学习]分页
分页
- Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中
 
Paginator对象
- Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数
 
属性
- count:对象总数
 - num_pages:页面总数
 - page_range:页码列表,从1开始,例如[1, 2, 3, 4]
 
方法
- page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage异常
 
异常exception
- InvalidPage:当向page()传入一个无效的页码时抛出
 - PageNotAnInteger:当向page()传入一个不是整数的值时抛出
 - EmptyPage:当向page()提供一个有效值,但是那个页面上没有任何对象时抛出
 
Page对象
创建对象
- Paginator对象的page()方法返回Page对象,不需要手动构造
 
属性
- object_list:当前页上所有对象的列表
 - number:当前页的序号,从1开始
 - paginator:当前page对象相关的Paginator对象
 
方法
- has_next():如果有下一页返回True
 - has_previous():如果有上一页返回True
 - has_other_pages():如果有上一页或下一页返回True
 - next_page_number():返回下一页的页码,如果下一页不存在,抛出InvalidPage异常
 - previous_page_number():返回上一页的页码,如果上一页不存在,抛出InvalidPage异常
 - len():返回当前页面对象的个数
 - 迭代页面对象:访问当前页面中的每个对象
 
示例
视图:
def herolist(request):
pindex = request.GET.get('pindex')
if pindex == None:
pindex = ''
list = HeroInfo.objects.all()
paginator = Paginator(list, 5) #每页5条数据
page = paginator.page(int(pindex))#第一页的数据,从1开始
context = {'page':page}
return render(request, 'booktest/herolist.html', context)
模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for hero in page %}
<li>{{ hero.hname }}</li>
{% endfor %}
</ul>
<hr/>
{% for pindex in page.paginator.page_range %}
{% if pindex == page.number %}
{{ pindex }}
{% else %}
<a href="/booktest/herolist/?pindex={{ pindex }}">{{ pindex }} </a>
{% endif %}
{% endfor %}
</body>
</html>
[Django学习]分页的更多相关文章
- Django学习笔记(12)——分页功能
		
这一篇博客记录一下自己学习Django中分页功能的笔记.分页功能在每个网站都是必要的,当页面因需要展示的数据条目过多,导致无法全部显示,这时候就需要采用分页的形式进行展示. 分页在网站随处可见,下面展 ...
 - Django学习笔记(20)——BBS+Blog项目开发(4)Django如何使用Bootstrap
		
本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其 ...
 - 今天主要推荐一下django学习的网址!
		
前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...
 - Django 学习笔记之四 QuerySet常用方法
		
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
 - Django 学习笔记之三  数据库输入数据
		
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
 - Django学习系列之Form基础
		
Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...
 - Django学习笔记(五)—— 表单
		
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
 - Django学习笔记(三)—— 型号 model
		
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
 - django学习之Model(二)
		
继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...
 
随机推荐
- MFC异常处理的问题
			
参考文献:http://technet.microsoft.com/zh-cn/library/t078xe4f(v=vs.85).aspx MFC中异常处理的语法和语义构建在标准C++异常处理语法和 ...
 - vue学习01
			
vue学习01 1. 创建一个Vue实例官网-学习-教程-安装-(开发/生产版本)-与jQuery的引用相似 <!DOCTYPE html> <html> <head ...
 - JMeter学习笔记---性能分析
			
图像结果: 通过观察平均采样响应时长,用户可以直观地看到,随着并发压力的加大,以及性能测试时间的延长,系统性能所发生的变化.正常情况下,平均采样响应时长曲线应该是平滑的,并大致平行于图像下边界. 异常 ...
 - PO_从PO追溯PR的方式和表(分析)
			
2014-06-03 Created By BaoXinjian
 - Linux进程地址空间和虚拟内存
			
一.虚拟内存 先来看一张图(来自<Linux内核完全剖析>),如下: 分段机制:即分成代码段,数据段,堆栈段.每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低 ...
 - 从错误中学python(4)——最小公约数与辗转相除法
			
题目 给你两个正整数a和b, 输出它们的最大公约数 辗转相除法 辗转相除法的步骤 def gcd(b,a): b,a=a,b%a if a==0: return b else: return gcd( ...
 - Java JNI的具体介绍
			
JNI就是Java Native Interface的简称,也就是java本地接口.它提供了若干的API实现了和Java和其它语言的通信(主要是C&C++).也许不少人认为Java已经足够强大 ...
 - django 数据库获取值
			
数据库表中的内容如下: models.Step_Type.objects.values()获取model中的符合条件的值, 实际为把表中的所有值都查询出来,如查询结果为:<QuerySet [{ ...
 - Laravel 事件系统用法总结(监听事件,观察者模式)
			
看这篇文章先复习一下设计模式 : https://www.cnblogs.com/fps2tao/p/9640338.html 在理解了观察者模式后,我们开始正文 Laravel 的事件提供了一个简单 ...
 - Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
			
SQL*PLus命令 SQLPLUS username[/password][@connect_identifier][AS SYSOPER|SYSDAB] 1. 启动数据库实例 STARTUP [n ...