Django_Paginator分页器

这篇具有很好参考价值的文章主要介绍了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())

执行结果如下:

Django_Paginator分页器,Django,django,python,后端,sqlite,程序人生,数据库,测试开发

简单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页展示如下:

Django_Paginator分页器,Django,django,python,后端,sqlite,程序人生,数据库,测试开发


源码等资料获取方法

Django_Paginator分页器,Django,django,python,后端,sqlite,程序人生,数据库,测试开发

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

三连之后我会在评论区挨个私信发给你们~文章来源地址https://www.toymoban.com/news/detail-550585.html

到了这里,关于Django_Paginator分页器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二挡起步——pythonweb开发Django框架,前端原生+Django后端框架+python网络抓包(代替数据库数据)(附带小案例)

     大家好,我是csdn的博主: lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主 lqj_本人擅长微信小程序,前端,python,等方面的知识 https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343 哔哩哔哩欢迎关注: 小淼Develop 小淼Develop的个人空间-小淼Develop个

    2024年02月03日
    浏览(85)
  • Python智能家居系统后端源码,基于Django+MQTT+ESP8266的智能家居系统源码

    代码下载地址:Python智能家居系统后端源码 服务器硬件环境: 处理器:Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 1核 内存:2GB 硬盘空间:60GB 单片机环境: 单片机:ESP8266-12E NodeMCU 开发环境:Arduino IDE(1.8.19) 软件环境: 操作系统:Ubuntu 18.04 LTS 编程语言:Python(3.7.9) Web后端框架:

    2024年02月02日
    浏览(57)
  • django处理分页

    当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 这个分页插件要实现的是如下效果,当前页和前5页,后5页,上一页和下一页,还有首页和尾页 在app01下创建一个分页的的工具类,pagination.py pagination.py的内容: 在初始化函数中,需要的参数有 reques

    2024年02月14日
    浏览(36)
  • django进阶-分页

    定义:         Django 提供Paginator类可以方便的实现分页功能         Paginator类位于django.core.paginator         对象的构造方法         paginator = Paginator(object_list,per_page)         参数                 object_list        需要分页的对象                 p

    2024年02月14日
    浏览(44)
  • django--分页功能

    Django 提供了强大的分页功能,可以轻松地在视图中实现分页。 在视图中使用分页: 在模板中显示分页: 这个模板中的分页导航演示了如何在模板中显示分页链接。它使用 data 对象中的信息,如 has_previous、previous_page_number、number、num_pages 等来生成分页导航链接。

    2024年02月04日
    浏览(37)
  • Django后端开发——Django应用及分布式路由

    B站网课:点击蓝色字体跳转 或者复制链接在浏览器打开:https://www.bilibili.com/video/BV1vK4y1o7jH?p=14vd_source=597e21cf34ffcdce468ba00be2177e8a 终端: 在settings.py的INSTALLED_APPS中添加应用名即可 news开头的交由news管理 music开头的交由music管理 Step1 - 主路由中调用include函数 语法:include(‘app名

    2024年02月19日
    浏览(55)
  • 【后端】Django与Django REST Framework的结合使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发语言,本文主要介绍Django与Django REST Framework的结合使用。 创建Django项目通常包括以下步骤: 安装Django : 首先,确保你的

    2024年04月26日
    浏览(35)
  • 七、Django DRF框架GenericAPIView--搜索&排序&分页&返回值

    上一章: 六、DRF框架APIView--requestresponse解析器渲染器_做测试的喵酱的博客-CSDN博客 下一章: APIView 继承 View GenericAPIView 继承 APIView。 GenericAPIView 功能:     a.具备View的所有特性     b.具备了APIView中的认证、授权、限流功能     c.还支持对于获取列表数据接口的功能:搜索

    2024年02月08日
    浏览(66)
  • Django后端开发——静态文件

    B站网课:点击蓝色字体跳转 或者复制网址在浏览器访问:https://www.bilibili.com/video/BV1vK4y1o7jH?p=13vd_source=597e21cf34ffcdce468ba00be2177e8a 如:图片、css、js、音频、视频 以下一行代码是手动添加的,指定了一个目录——‘static’,将在该目录下查找静态文件 模板中访问静态文件 - im

    2024年02月19日
    浏览(104)
  • Django和jQuery,实现Ajax表格数据分页展示

    当存在重新请求接口才能返回数据的功能时,若页面的内容很长,每次点击一个功能,页面又回到了顶部,对于用户的体验感不太友好,我们希望当用户点击这类的功能时,能直接加载到数据,请求后端的操作不会呈现在前端,给用户一种无感知的状态。 若希望在不重新加载

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包