Django_Paginator分页器

目录

分页器代码说明

简单demo

源码等资料获取方法


分页器代码说明

import os
import random
# 需要导入分页器类

from django.core.paginator import Paginator, EmptyPage


# 导入配置django配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dailyfresh.settings')


iterable_obj = [random.randint(1, 100) for i in range(45)]   # 必须为可迭代对象,比如 QuerySet, list, tuple
print(iterable_obj)
# 实例化分页器
paginator = Paginator(object_list=iterable_obj, per_page=20)

# 每页显示数据量
print("每页显示数据量:%s" % paginator.per_page)
# 总页数
print("总页数:%s" % paginator.num_pages)
# 数据总数
print("数据总数:%s" % paginator.count)

# 获取某页的page对象,如果为不存在的页码会抛EmptyPage异常
try:
    page_obj = paginator.page(random.randint(1, 4))
except EmptyPage:
    page_obj = paginator.page(1)
    print("[异常]获取page对象超出范围")
print(page_obj)
print("通过page对象获取分页器实例", page_obj.paginator)

# 获取当前页码
print("获取当前页码:%s" % page_obj.number)
# 获取当前页内容
print("获取当前页内容:%s" % page_obj.object_list)

# 校验是否有上一页,返回布尔值
print("是否有上一页:%s" % page_obj.has_previous())
# 上一页页码。如果无上一页,则抛错
print("上一页页码:%s" % page_obj.previous_page_number())

# 校验是否有下一页,返回布尔值
print("是否有下一页:%s" % page_obj.has_next())
# 下一页页码。如果无下一页,则抛错
print("下一页页码:%s" % page_obj.next_page_number())

执行结果如下:

简单demo

定义视图

from django.views import View


class DemoView(View):

    def get(self, request, page_num):
        iterable_obj = [i for i in range(45)]
        # 对数据进行分页
        paginator = Paginator(iterable_obj, 10)
        cur_page = paginator.page(page_num)
        content = {
            "cur_page": cur_page,
        }
        return render(request, "demo.html", content)

添加路由

from django.urls import re_path, path
from apps.goods import views
# 定义命名空间
app_name = "goods"

urlpatterns = [
    re_path("demo_list/(?P<page_num>\d+)", views.DemoView.as_view(), name="demo_list")
]

添加demo.html模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- 展示每页信息 -->
<ul>
    {% for v in cur_page.object_list %}
        <li>{{v}}</li>
    {% endfor %}
</ul>

<!-- 生成页码信息 -->
<div>
    {% if cur_page.has_previous %}
        <a href="{% url 'goods:demo_list' cur_page.previous_page_number %}">上一页</a>
    {% endif %}

    {% for page_num in cur_page.paginator.page_range %}
        <a href="{% url 'goods:demo_list' page_num %}">{{ page_num }}</a>
    {% endfor %}

    {% if cur_page.has_next %}
         <a href="{% url 'goods:demo_list' cur_page.next_page_number %}">下一页</a>
    {% endif %}
</div>
</body>
</html>

界面第5页展示如下:


源码等资料获取方法

 各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36882.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSH 远程口令登录及免密登录

简介&#xff1a; SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机使用SSH协议登录另一台计算机我们就可以认为这种登录时安全的&#xff0c;即使被中途截获,密码也不会泄露 安装 1.服务器安装OpenSSH(CentOS系统默认安装了openssh) 1.yum install op…

Linux 安装elasticsearch,kibana,Logstash

1、Elasticsearch 安装 cd /usr/localwget \ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downloads/kibana/kibana-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downlo…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 列式数据是如何存储与处理的

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

如何实现浏览器内多个标签页之间的通信?

1、使用 LocalStorage 特点&#xff1a;同域共享存储空间&#xff1b;持久化将数据存储在浏览器&#xff1b;提供事件监听storage变化 实现逻辑&#xff1a; A页面将数据存储在本地。B页面监听storage的变化&#xff0c;同步storage的最新数据&#xff1b; 好处&#xff1a;操…

探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架&#xff0c;基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割&#xff0c;当然在人像分割基础上&#xff0c;我们可以做背景替换、背景模糊。 目录 一、配置参数与模型 1…

微擎后台getshell,低权限也可以

/web/index.php?csite&aeditor 这个文件可以编辑html&#xff0c;然后前台会解析成php 没测试最新版 比如编辑专题&#xff1a;/web/index.php?csite&aeditor&dopage&multiid0 上架抓包 改html内容为php 复制前台url 访问之 博客原文&#xff1a; 微擎后…

GEE入门学习,遥感云大数据分析、管理与可视化以及在林业应用丨灾害、水体与湿地领域应用丨GPT模型应用

目录 ①海量遥感数据处理与GEE云计算技术实践应用 ②GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用 ③GEE遥感云大数据林业应用典型案例实践及GPT模型应用 ④遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 ①海量遥感…

关于SpringBoot、Nginx 请求参数包含 [] 特殊符号 返回400状态

问题来源&#xff1a; 使用RESTful风格发送带有特殊符号(如&#xff1a;点、大括号等)的请求&#xff0c;当使用Nginx做地址映射时会返回报"HTTP Status 400-Bad Request"的错误&#xff0c;这个时候我们需要对Nginx的映射方式做一下调整。 Nginx调整完发现跳转后又报…

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现WOA-CNN-GR…

ELK日志记录——Kibana组件——grok 正则捕获插件、mutate数据修改插件、multiline 多行合并插件、date 时间处理插件

grok 正则捕获插件 grok 使用文本片段切分的方式来切分日志事件 内置正则表达式调用 %{SYNTAX:SEMANTIC} ●SYNTAX代表匹配值的类型&#xff0c;例如&#xff0c;0.11可以NUMBER类型所匹配&#xff0c;10.222.22.25可以使用IP匹配。 ●SEMANTIC表示存储该值的一个变量声明&…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

《数学模型(第五版)》学习笔记(1) 第1章 建立数学模型 第2章 初等模型

参考数学建模论坛《数学模型(第三版)》学习笔记 http://www.madio.net/thread-146480-1-1.html 参考视频 数模视频&#xff08;姜启源、谢金星&#xff09; https://www.bilibili.com/video/BV1VJ411w7r3/?spm_id_from333.788.recommend_more_video.0&vd_source3ef6540f84…

【高级程序设计语言C++】初识模板

1. 函数模板1.1函数模板的实例化1.2显示实例化1.3模板参数的匹配原则 2.类模板2.1类模板的定义格式2.2类模板的实例化 1. 函数模板 概念&#xff1a; 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型产生函…

哪些软件分析工具需要使用到pdb符号文件?

目录 1、什么是pdb文件&#xff1f;pdb文件有哪些用途&#xff1f; 2、pdb文件的时间戳与pdb文件名称 3、常用软件分析工具有哪些&#xff1f; 4、使用Windbg调试器查看函数调用堆栈时需要加载pdb文件 4.1、给Windbg设置pdb文件路径 4.2、为什么要设置系统库pdb文件下载服…

springboot家具商城系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

vuepress - - - 首页底部版权信息加a标签超链接跳转或备案信息跳转链接

修改前 默认的底部版权信息只能填写纯文本&#xff0c;加不了超链接跳转等。 对应\docs\README.md内容&#xff1a; 修改后 修改后&#xff0c;点击Zichen跳转会打开新的网页。 看官网例子 底部添加了备案号跳转链接。 找到官网的github部署的文件。点导航栏中的“指…

【从零开始学习CSS | 第一篇】选择器介绍

目录 前言&#xff1a; 选择器介绍&#xff1a; 各类选择器&#xff1a; 总结&#xff1a; 前言&#xff1a; 本文以及后续几篇文章我们将会集中介绍CSS中的常见选择器&#xff0c;选择器的出现可以让我们实现对具体的元素标签进行定制&#xff0c;因此我们要掌握好各类选择…

js逆向补环境-调试工具vscode与nodejs使用之无环境联调

目录 一、啊哈一、Nodejs安装1、nodejs最新版本的安装&#xff08;windows&#xff09;2、旧版nodejs更新成最新版本&#xff08;windows&#xff09;3、nodejs安装&#xff08;linux&#xff09; 二、vscode安装使用(windows)1、下载安装vscode2、vscode运行插件Code Runner安…

Docker 安装与基本使用

一、简介 Docker 官方文档、Docker 中文文档&#xff0c;更新会落后于官方文档 什么是 Docker ? Docker 是一个应用打包、分发、部署的工具&#xff0c;也可以把它理解为一个轻量的虚拟机&#xff0c;它只虚拟软件需要的运行环境&#xff0c;多余的一点都不要&#xff0c;而普…

【C++】list模拟实现

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…