django分页:

from django.shortcutsimportrender

from django.core.paginator import Paginator,EmptyPage, PageNotAnInteger

from app01 import models

#分页对象和当前页面数据对象的方法均可在模板中以属性(不加括号)的方式调用

book_obj = models.Book.objects.all()#获取当前书籍所有信息

paginator = Paginator(book_obj,8)#实例化分页对象,每页显示8条数据

print(paginator.count)#总数据条数

print(paginator.num_pages)#总页数

print(paginator.page_range)#页数范围

current_page_num=int(request.GET.get('page',1))#通过a标签的GET方式请求,默认显示第一页

book_objs=paginator.page(current_page_num)#获取当前页面的数据对象,用于响应前端请求进行渲染显示

if book_objs.has_previous():#当前页面是否有前一页

    print(book_objs.previous_page_number())#当前页面的前一页页码

if book_objs.has_next():#当前页面是否有后一页

    print(book_objs.next_page_number())#当前页面的后一页页码

try:

print(page)

book_objs = paginator.page(page)

except PageNotAnInteger:

book_objs = paginator.page(1)

except EmptyPage:

book_objs = paginator.page(paginator.num_pages)

#设置页面操作的页码显示个数(需要在前端进行是当前页面数据对象的方法的使用)

page_range=paginator.page_range#确定页面范围,以便进行模板渲染显示页码操作

if paginator.num_pages>5:#页码只显示5页,总页数小于5页时,直接全部显示

    if current_page_num<3:

page_range=range(1,6)

elif current_page_num+2>paginator.num_pages:

page_range=range(current_page_num-5,paginator.num_pages+1)

else:

page_range=range(current_page_num-2,current_page_num+3)

return render(request, 'show.html', {'book_objs': book_objs,'page_range':page_range,'current_page_num':current_page_num})

Django之内置分页器(paginator)的更多相关文章

  1. 76、django之内置Admin

    本篇导航: 配置路由 定制Admin Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django ...

  2. Django 内置分页器

    先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果

  3. django之内置Admin

    本篇导航: 配置路由 定制Admin Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django ...

  4. Django内置分页器

    分页 在Django中实现分页功能非常简单.因为Django已经内置了两个处理分类的类.分别是Paginator和Page.Paginator用来管理整个分类的一些属性,Page用来管理当前这个分页的 ...

  5. Django之内置组件

    Django组件介绍       分页器的使用       Form       modelForm       orm       cookie和session       中间件       信号 ...

  6. Django 内置分页--Paginator类

    官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...

  7. Django的分页器 paginator

    导入 from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger Page对象 Paginator.page()将返回 ...

  8. Django学习——ajax发送其他请求、上传文件(ajax和form两种方式)、ajax上传json格式、 Django内置序列化(了解)、分页器的使用

    1 ajax发送其他请求 1 写在form表单 submit和button会触发提交 <form action=""> </form> 注释 2 使用inp ...

  9. Django 学习之内置Admin

    一.Admin组件 Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django Admin内部依赖: 依赖APP: django.contrib.au ...

随机推荐

  1. Linux系统介绍与环境搭建准备

    1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心.   操作系统的作用是 ...

  2. 7.哪些工具可以帮助查找bug或进行静态分析

    哪些工具可以帮助查找bug或进行静态分析? PyChecker is a static analysis tool that detects the bugs in Python source cod ...

  3. 为什么LIKELY和UNLIKELY要用两个叹号

    LIKELY和UNLIKELY的一般定义如下: #define LIKELY(x) (__builtin_expect(!!(x),1))#define UNLIKELY(x) (__builtin_ ...

  4. keep-alive的深入理解与使用(配合router-view缓存整个路由页面)

    原文链接: 点我 在搭建 vue 项目时,有某些组件没必要多次渲染,所以需要将组件在内存中进行‘持久化’,此时 <keep-alive> 便可以派上用场了. <keep-alive& ...

  5. 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)

    青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问 ...

  6. 题解 CF588A 【Duff and Meat】

    题意 有一个人,想吃 $n$ 天肉,第 $i$ 天需要吃 $a[i]$ 块肉,第 $i$ 天超市肉价为每块 $b[i]$ 元,买来的肉可以留到后面吃,求这个人在每天都吃到肉的情况下花费的最小值. 题目 ...

  7. AIDL原理分析

    季春初始,天气返暖,新冠渐去,正值学习好时机.在Android系统中,AIDL一直在Framework和应用层上扮演着很重要的角色,今日且将其原理简单分析.(文2020.03.30) 一.开篇介绍 1 ...

  8. <学习笔记: Django之初见>

    Django 1. web框架介绍 具体介绍Django之前,必须先介绍WEB框架等概念. web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子. ...

  9. thinkphp-getshell Bypass

    年前写的了,做测试用,主要利用 session getshell 或者thinkphp 的log  //勿用attack  测试 import requests import time import ...

  10. Educational Codeforces Round 77 (Rated for Div. 2) C. Infinite Fence

    C. Infinite Fence 题目大意:给板子涂色,首先板子是顺序的,然后可以涂两种颜色,如果是r的倍数涂成红色,是b的倍数涂成蓝色, 连续的k个相同的颜色则不能完成任务,能完成任务则输出OBE ...