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. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  2. 使用现代C++如何避免bugs(下)

     使用现代C++如何避免bugs(下) About virtual functions Virtual functions hinder a potential problem: the thing ...

  3. NSight Compute 用户手册(上)

    NSight Compute 用户手册(上) 非交互式配置文件活动 从NVIDIA Nsight Compute启动目标应用程序 启动NVIDIA Nsight Compute时,将出现欢迎页面.单击 ...

  4. Anchor Boxes示例实战

    Anchor Boxes示例实战 目标检测算法通常对输入图像中的大量区域进行采样,判断这些区域是否包含感兴趣的目标,并调整这些区域的边缘,以便更准确地预测目标的真实边界框.不同的模型可能使用不同的区域 ...

  5. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事

    保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...

  6. 开发掉坑(二)前端静态资源 Uncaught SyntaxError: Unexpected token <

    某天,有同学反馈后台管理系统出现静态资源无法加载的问题. 复现如下: 进入首页. 点击侧边栏某个子功能,静态资源可正常访问到. 等待10分钟左右,点击侧边栏其他子功能,无法访问到静态资源. 查看控制台 ...

  7. JVM--你常见的jvm 异常有哪些? 代码演示:StackOverflowError , utOfMemoryError: Java heap space , OutOfMemoryError: GC overhead limit exceeded, Direct buffer memory, Unable_to_create_new_native_Thread, Metaspace

    直接上代码: public class Test001 { public static void main(String[] args) { //java.lang.StackOverflowErro ...

  8. 提高GUI自动化测试稳定性解决方案

    针对"GUI自动化测试稳定性问题"这个问题,最典型的情景就是:同样的测试用例,在同样的测试执行环境下,测试的结果有时是Success,有时是Fail,这严重降低了GUI测试的可信度 ...

  9. Python使用websocket调用语音识别,语音转文字

    @ 目录 0. 太长不看系列,直接使用 1. Python调用标贝科技语音识别websocket接口,实现语音转文字 1.1 环境准备: 1.2 获取权限 1.2.1 登录 1.2.2 创建新应用 1 ...

  10. C#进阶学习4--反射(Reflection)

    一.反射的定义 审查元数据并收集关于它的类型信息的能力. 二.基础概念 (1)Assembly:定义和加载程序集,加载在程序集中的所有模块以及从此程序集中查找类型并创建该类型的实例. (2)Modul ...