Django基础009--Paginator分页
1.引入
from django.core.paginator import Paginator
2.Paginator对象提供的方法
articles = models.Article.objects.all()
page_obj = Paginator(articles,5)
print('总条数',page_obj.count)
print('有多少页',page_obj.num_pages)
print('页码列表',page_obj.page_range)
3.数据集提供的方法
page_data = page_obj.get_page(page_num)#number代表获取第几页的数据
print(page_data.has_other_pages())#是否有上一页或者下一页
print(page_data.has_next())#是否有下一页
print(page_data.has_previous())#是否有上一页
print(page_data.next_page_number())#下一页页码
print(page_data.previous_page_number())#上一页页码
print(page_data.number)#当前页的页码
4.实例
def index(request):
page_num = request.GET.get('page')
print('页面传递过来的参数',page_num)
categories = models.Category.objects.all()
articles = models.Article.objects.all()
page_obj = Paginator(articles,5)
# print('总条数',page_obj.count)
# print('有多少页',page_obj.num_pages)
# print('页码列表',page_obj.page_range)
page_data = page_obj.get_page(page_num)#number代表获取第几页的数据
# print(page_data.has_other_pages())#是否有上一页或者下一页
# print(page_data.has_next())#是否有下一页
# print(page_data.has_previous())#是否有上一页
# print(page_data.next_page_number())#下一页页码
# print(page_data.previous_page_number())#上一页页码
print(page_data.number)#当前页的页码
return render(request,'index.html',{'articles':page_data,'page_obj':page_obj})
5.前端代码
{% if articles.has_other_pages %}
<div class="text-center mt-2 mt-sm-1 mt-md-0 mb-3 f-16"> {% if articles.has_previous %}
<a class="text-success" href="/articles?page={{ articles.previous_page_number }}">上一页</a>
{% endif %} {% for num in page_obj.page_range %}
{% if num == articles.number %}
<span class="mx-2" style="background-color: #0D7377"><a href="/articles?page={{ num }}">{{num}}</a></span>
{% else %}
<span class="mx-2"><a href="/articles?page={{ num }}">{{num}}</a></span>
{% endif %}
{% endfor %} {% if articles.has_next %}
<a class="text-success" href="/articles?page={{ articles.next_page_number }}">下一页</a>
{% endif %} </div>
{% endif %}
Django基础009--Paginator分页的更多相关文章
- Django基础06篇 分页
1.导入Django自带的分页类 from django.core.paginator import Paginator 2.分页类的使用 def index(request): # return H ...
- django基础知识之分页:
分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...
- day 65 Django基础之django分页
Django基础之django分页 一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...
- day 61 Django基础之django分页
Django基础之django分页 一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...
- 第六章:Django 综合篇 - 11:分页 Paginator
分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览. Django又很贴心的为我们提供了一个Paginator分页工具, ...
- python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制
django Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...
- Django框架 之 Pagination分页实现
Django框架 之 Pagination分页实现 浏览目录 自定义分页 Django内置分页 一.自定义分页 1.基础版自定义分页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- Django基础五之Ajax
Django基础五之Ajax 目录 Django基础五之Ajax 1. Ajax介绍 2. Ajax前后端传值 2.1 方法一HttpResponse直接返回 2.2 方法二使用Json格式返回 2. ...
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- python3之Django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
随机推荐
- Go语言的函数01---概念
package main import "fmt" /* 向某人致以问候 参数: name string类型,要问候的对象 n int类型,要问候的次数 返回值: string类型 ...
- 转载 | Scala 如何避免使用 Null
在 Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的. Scala 的 Option类型 Scala在变量和函数返回值可能不会引用任何值的时候使用 Option 类型 ...
- 人脸真伪验证与识别:ICCV2019论文解析
人脸真伪验证与识别:ICCV2019论文解析 Face Forensics++: Learning to Detect Manipulated Facial Images 论文链接: http://o ...
- 智能物联网(AIoT,2020年)(上)
智能物联网(AIoT,2020年)(上) 中国AloT的概念与现状 01智能物联网(AIoT)定义 人工智能与物联网的协同应用 02 AIoT2025产业瞭望:家庭AI管家 智能家居交互方式无感化,跨 ...
- 【NX二次开发】判断面是否相切,相切面。
判断面是否相切,相切面. 用到的函数: UF_MODL_ask_minimum_dist 获取两个对象之间的最短距离,以及点坐标 UF_MODL_ask_face_parm 给定一个参考点,返回曲面上 ...
- React开发中react-route-dom使用BrowserRouter部署到服务器上刷新时报404的问题
React项目部署中遇到的问题 react开发中react-route使用BrowserRoute路径在iis服务器上刷新时报404的问题 解决:在发布的项目根目录添加web.config配置文件 在 ...
- MySQL分页查询limit踩坑记
1 问题背景 线上有一个批处理任务,会批量读取昨日的数据,经过一系列加工后,插入到今日的表中.表结构如下: 1 CREATE TABLE `detail_yyyyMMdd` ( 2 `id` bigi ...
- 干货 | LuatOS BSP移植教程,简单到复制粘贴!!!
LuatOS本着自身的开源特性,可以很轻松的嵌入到很多微处理器和微控制器.今天简要讲下如何移植这套系统,上手比较简单,看完基本就会了. 要想做移植,就要先了解需要移植芯片的SDK,LuatOS依赖于F ...
- BIM,PIM接入GIS 需要解决的关键技术问题
随着技术发展,跨界融合已经不是新鲜事物,近两年BIM.PIM+GIS一张图的提出,给行业注入了一股清流. 为GIS行业发展带来了新的契机,同时也带来了一些新的挑战.面对挑战,本文将剖析BIM.PIM+ ...
- Go语言判断一个字节的高位大于四
Go语言判断一个字节的高位大于四 1.步骤: 第一步,将该字节的低位清零(与0xF0进行&运算) 为了后面与0x40比较 0xF0转为二进制是1111 0000,&运算(两个同时为1, ...