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 ...
随机推荐
- 动静结合?Ruby 和 Java 的基础语法比较(入门篇)
前言 这篇文章示例代码比较多, Java 程序员可以看到一些 Ruby 相关语法和使用,Ruby 程序员可以看看 Java 的基本语法和使用方法,本文比较长,将近万字左右,预计需要十几分钟,如果有耐心 ...
- 微软的 Sysinternals 系统管理工具包,例如可找出自动启动的流氓软件
作者:Kenny链接:https://www.zhihu.com/question/52157612/answer/153886419来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Copy ArrayList的四种方式
目录 简介 使用构造函数 使用addAll方法 使用Collections.copy 使用stream 总结 Copy ArrayList的四种方式 简介 ArrayList是我们经常会用到的集合类, ...
- Node.js快速创建一个访问html文件的服务器
var http = require('http'), // 引入需要的模块 fs = require('fs'), //引入文件读取模块 cp = require('child_process'), ...
- pod setup命令失败解决方法
最近运行pod setup出现以下问题: remote: Compressing objects: 100% (34/34), done.error: RPC failed; curl 56 SSLR ...
- Mybatis详解系列(五)--Mybatis Generator和全注解风格的MyBatis3DynamicSql
简介 Mybatis Generator (MBG) 是 Mybatis 官方提供的代码生成器,通过它可以在项目中自动生成简单的 CRUD 方法,甚至"无所不能"的高级条件查询(M ...
- python ——文件的操作大全,如with..as
工作中遇到了需要对json文件进行增删内容操作的需要,于是系统性的整理了一下关于文件的基本操作这里的知识点: 结构:新建文件→打开文件→读取文件→关闭文件 一.基本文件操作 1.新建文件(打开文件), ...
- Java实现通过反射获取指定类的所有信息
package com.ljy; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.l ...
- maven项目变成web项目
具体步骤如图所示: 第一步:建议一个Maven Webapp项目 第二步:右击项目,选择属性,找到project facets,点击tuntimes标签选择apache tomcat v6.0选中P ...
- .Net Core WPF之XAML概述
原文链接,机器翻译,有误处参看原文. XAML overview in WPF 2019/08/08 What is XAML XAML syntax in brief Case and white ...