分页

  • 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():返回当前页面对象的个数
  • 迭代页面对象:访问当前页面中的每个对象

示例

创建视图pagTest

from django.core.paginator import Paginatordef pagTest(request, pIndex):list1 = AreaInfo.objects.filter(aParent__isnull=True)p = Paginator(list1, 10)if pIndex == '':pIndex = '1'pIndex = int(pIndex)list2 = p.page(pIndex)plist = p.page_rangereturn render(request, 'booktest/pagTest.html', {'list': list2, 'plist': plist, 'pIndex': pIndex})

配置url

url(r'^pag(?P<pIndex>[0-9]*)/$', views.pagTest, name='pagTest'),

定义模板pagTest.html

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body>
<ul>
{%for area in list%}
<li>{{area.id}}--{{area.atitle}}</li>
{%endfor%}
</ul>{%for pindex in plist%}
{%if pIndex == pindex%}
{{pindex}}&nbsp;&nbsp;
{%else%}
<a href="/pag{{pindex}}/">{{pindex}}</a>&nbsp;&nbsp;
{%endif%}
{%endfor%}
</body>
</html>

转载于:https://www.cnblogs.com/huwei934/p/6978727.html

django基础知识之分页:相关推荐

  1. python开发框架——Django基础知识(九)

      hello!我是小J,每天一个小知识,一起学python,让技术无限发散. 模型类--增删改查 1. 演示工具shell的使用 2. 添加数据 3. 查询数据 3.1 基础条件查询 3.2 过滤查 ...

  2. python开发框架——Django基础知识(十一)

      hello!我是小J,每天一个小知识,一起学python,让技术无限发散. DRF和Web 1. web应用模式 1.1 前后端不分离 1.2 前后端分离 2. 使用Django开发REST接口 ...

  3. python开发框架——Django基础知识(七)

      hello!我是小J,每天一个小知识,一起学python,让技术无限发散. 模板 1. 模板配置 1.1 模板简介 1.2 模板的使用流程 1.3 模板配置 2. 模板使用 2.1 变量 2.2 ...

  4. Django基础知识

    Django:一个开源的Web应用框架,由python写成 MVC:一种软件设计的典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑代码聚集到一个部件里面,在改进和个性化定制界面及用户 ...

  5. django 基础知识 ~ forms详解

    一 简介 今天咱们来聊聊 django强大的表单功能 二 分类    1 ModelFrom ModelFrom只需要声明指定字段,其他的选择继承    2 Froms (我们今天主要推这个)     ...

  6. Django基础知识MTV

    Django简介 Django是使用Python编写的一个开源Web框架.可以用它来快速搭建一个高性能的网站. Django也是一个MVC框架.但是在Django中,控制器接受用户输入的部分由框架自行 ...

  7. django基础知识~RBAC实验部分代码记录

    一 简介:小小的记录下具体的思路和相关代码 二 具体阐述 # setting处理逻辑 PERMISSION_SESSION_KEY = 'permissions' #这里填写需要存取权限的sessio ...

  8. django基础知识之验证码:

    验证码 在用户注册.登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻一些服务器的压力 使用验证码也是一种有效的防止crsf的方法 验证码效果如下图: 验证码视 ...

  9. Django基础知识学习

    1.Django是什么 Django 是一个由 Python 编写的开放源代码的 Web 应用程序开发框架.它采用了 MVT 软件设计模式,即 Model 模型.View 视图和 Templates ...

最新文章

  1. ip classles
  2. 深入理解ReentrantLock
  3. awk学习笔记(10) - 数组
  4. [原创]前端工作了一段时间经验总结,献给做前端的同学
  5. git 删除本地仓库
  6. python 批量打印文档_使用python将Excel数据填充Word模板并生成Word
  7. MVVM下listbox默认显示最后一行
  8. JS_模拟广告栏跟随效果
  9. 通过adb查看当前页面中显示的窗口Activity名称
  10. npm 代理的设置和取消
  11. 计算机服务器可以开游戏吗,想买台小服务器做个人电脑,玩游戏可以吗
  12. typora+gitee图床
  13. linux误删分区表,恢复被误删的Linux分区表
  14. git rebase操作
  15. [导入]PSP 经典游戏合集
  16. 怎样查看ie浏览器的版本号
  17. 牛腩之CSS核心内容
  18. 定向光流直方图是什么_OpenCV计算机视觉编程攻略(第3版)
  19. JavaScript-0818
  20. 怎样实现模块间的参数传递?急急急!!!!!!!!!

热门文章

  1. 90页Numpy精华、算法刷题44天等内容整理
  2. 如何改造UE4用于赛璐璐3D卡渲?这里有一份日本大厂的实操分享
  3. Java中级工程师知识图谱
  4. 如果 “ 2X ”的补码是“ 90H ”,那么 X 的真值是( )。
  5. SQL基础【九、Update】
  6. show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
  7. oracle 触发器的种类和触发事件
  8. nodejs内存溢出
  9. 题解报告:hdu 1257 最少拦截系统(贪心)
  10. 微信公众号获取acess_token并存储(php)