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分页的更多相关文章

  1. Django基础06篇 分页

    1.导入Django自带的分页类 from django.core.paginator import Paginator 2.分页类的使用 def index(request): # return H ...

  2. django基础知识之分页:

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  3. day 65 Django基础之django分页

      Django基础之django分页   一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...

  4. day 61 Django基础之django分页

      Django基础之django分页 一.Django的内置分页器(paginator) view   from django.shortcuts import render,HttpRespons ...

  5. 第六章:Django 综合篇 - 11:分页 Paginator

    分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览. Django又很贴心的为我们提供了一个Paginator分页工具, ...

  6. python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制

    django  Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...

  7. Django框架 之 Pagination分页实现

    Django框架 之 Pagination分页实现 浏览目录 自定义分页 Django内置分页 一.自定义分页 1.基础版自定义分页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  8. Django基础五之Ajax

    Django基础五之Ajax 目录 Django基础五之Ajax 1. Ajax介绍 2. Ajax前后端传值 2.1 方法一HttpResponse直接返回 2.2 方法二使用Json格式返回 2. ...

  9. python的django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

  10. python3之Django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

随机推荐

  1. Go语言的函数01---概念

    package main import "fmt" /* 向某人致以问候 参数: name string类型,要问候的对象 n int类型,要问候的次数 返回值: string类型 ...

  2. 转载 | Scala 如何避免使用 Null

    在 Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的. Scala 的 Option类型 Scala在变量和函数返回值可能不会引用任何值的时候使用 Option 类型 ...

  3. 人脸真伪验证与识别:ICCV2019论文解析

    人脸真伪验证与识别:ICCV2019论文解析 Face Forensics++: Learning to Detect Manipulated Facial Images 论文链接: http://o ...

  4. 智能物联网(AIoT,2020年)(上)

    智能物联网(AIoT,2020年)(上) 中国AloT的概念与现状 01智能物联网(AIoT)定义 人工智能与物联网的协同应用 02 AIoT2025产业瞭望:家庭AI管家 智能家居交互方式无感化,跨 ...

  5. 【NX二次开发】判断面是否相切,相切面。

    判断面是否相切,相切面. 用到的函数: UF_MODL_ask_minimum_dist 获取两个对象之间的最短距离,以及点坐标 UF_MODL_ask_face_parm 给定一个参考点,返回曲面上 ...

  6. React开发中react-route-dom使用BrowserRouter部署到服务器上刷新时报404的问题

    React项目部署中遇到的问题 react开发中react-route使用BrowserRoute路径在iis服务器上刷新时报404的问题 解决:在发布的项目根目录添加web.config配置文件 在 ...

  7. MySQL分页查询limit踩坑记

    1 问题背景 线上有一个批处理任务,会批量读取昨日的数据,经过一系列加工后,插入到今日的表中.表结构如下: 1 CREATE TABLE `detail_yyyyMMdd` ( 2 `id` bigi ...

  8. 干货 | LuatOS BSP移植教程,简单到复制粘贴!!!

    LuatOS本着自身的开源特性,可以很轻松的嵌入到很多微处理器和微控制器.今天简要讲下如何移植这套系统,上手比较简单,看完基本就会了. 要想做移植,就要先了解需要移植芯片的SDK,LuatOS依赖于F ...

  9. BIM,PIM接入GIS 需要解决的关键技术问题

    随着技术发展,跨界融合已经不是新鲜事物,近两年BIM.PIM+GIS一张图的提出,给行业注入了一股清流. 为GIS行业发展带来了新的契机,同时也带来了一些新的挑战.面对挑战,本文将剖析BIM.PIM+ ...

  10. Go语言判断一个字节的高位大于四

    Go语言判断一个字节的高位大于四 1.步骤: 第一步,将该字节的低位清零(与0xF0进行&运算) 为了后面与0x40比较 0xF0转为二进制是1111 0000,&运算(两个同时为1, ...