Django之内置分页器(paginator)
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)的更多相关文章
- 76、django之内置Admin
本篇导航: 配置路由 定制Admin Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django ...
- Django 内置分页器
先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果
- django之内置Admin
本篇导航: 配置路由 定制Admin Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django ...
- Django内置分页器
分页 在Django中实现分页功能非常简单.因为Django已经内置了两个处理分类的类.分别是Paginator和Page.Paginator用来管理整个分类的一些属性,Page用来管理当前这个分页的 ...
- Django之内置组件
Django组件介绍 分页器的使用 Form modelForm orm cookie和session 中间件 信号 ...
- Django 内置分页--Paginator类
官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...
- Django的分页器 paginator
导入 from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger Page对象 Paginator.page()将返回 ...
- Django学习——ajax发送其他请求、上传文件(ajax和form两种方式)、ajax上传json格式、 Django内置序列化(了解)、分页器的使用
1 ajax发送其他请求 1 写在form表单 submit和button会触发提交 <form action=""> </form> 注释 2 使用inp ...
- Django 学习之内置Admin
一.Admin组件 Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django Admin内部依赖: 依赖APP: django.contrib.au ...
随机推荐
- tagbar 调到函数定义再跳回
首先要在源码文件夹下执行 ctags -R * 生成tags文件 齐次要安装 YouCompleteMe ctrl + ] 跳到函数定义 Ctrl-o 和 Ctrl-I 跳回.我试验的只有 Ctrl- ...
- 获取 ProgramData 之类的环境变量(文件夹路径)的值
GetEnvironmentVariable Recognized Environment Variables https://docs.microsoft.com/en-us/windows/dep ...
- 【手把手教你】win10 虚拟机 VMware Workstation Pro 15下安装redhat 8.0
安装redhat8.0 和安装Ubuntu 差别不大 可以参考上篇文章:https://www.cnblogs.com/zero-vic/p/11593683.html 但是redhat 8.1 b ...
- 15.Why lambda forms in python does not have statements?
Why lambda forms in python does not have statements? A lambda form in python does not have statement ...
- Java算法之 二分搜寻法 ( 搜寻原则的代表)
为什么80%的码农都做不了架构师?>>> 二分搜寻法 ( 搜寻原则的代表) 1.二分查找又称折半查找,它是一种效率较高的查找方法. 2.二分查找要求:(1)必须采用顺序存储结构 ...
- 如何将Superset嵌入后台系统之实践
1. 前言 此次实践过程全属个人学习,我选择了在window下安装Superset,并进行嵌入后台系统实践.对此进行实践过程总结,实践成果分享给大家,供大家参考,如果你有更好的想法,欢迎留言交流. 2 ...
- WFP之位图效果
首先看一个图片: 在"第一步"这个按钮周围,有一转红色,这个效果就是用WPF的位图效果实现的. 位图效果(BitmapEffect 对象)是简单的像素处理操作.位图效果将 Bi ...
- 洛谷P1217 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000 ...
- 数据结构--顺序栈--C++实现
#include <iostream> #define MaxSize 5000 using namespace std; template <typename T> clas ...
- 记一次真实的线上事故:一个update引发的惨案!
目录 前言 项目背景介绍 要命的update 结语 前言 从事互联网开发这几年,参与了许多项目的架构分析,数据库设计,改过的bug不计其数,写过的sql数以万计,从未出现重大纰漏,但常在河边走,哪 ...