阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

高阶应用-分页

353次阅读
没有评论

共计 2396 个字符,预计需要花费 6 分钟才能阅读完成。

一、Paginator 对象

  • 创建对象

    格式:Paginator(列表, 整数)

    返回值:返回的分页对象

  • 属性

    count:对象总数

    num_pages:页面总数

    page_range:[1,2,3,4,5] 页码从 1 开始

  • 方法

    page(num):获得一个 Page 对象,如果提供的页码不存在会抛出 ”InvalidPage” 异常

  • 异常

    • InvalidPage:当向 page()传递的是一个无效的页码时抛出
    • PageNotAnInteger:当向 page()传递的不是一个整数时抛出
    • EmptyPage:当向 page()传递一个有效值,但是该页面时没有数据时抛出

二、Page 对象

  • 创建对象

    Paginator 对象的 page()方法返回得到 Page 对象(不需要手动创建)

  • 属性

    • object_list:当前页上所有的数据 (对象) 列表
    • number:当前页的页码值
    • paginator:当前 page 对象关联的 paginator 对象
  • 方法

    • has_next:判断是否有下一页,如果有返回 True
    • has_previous:判断是否有上一页,如果有返回 True
    • has_other_pages:判断是否有上一页或下一页,如果有返回 True
    • next_page_number:返回下 s 一页的页码,如果下一页不存在抛出 InvalidPage 异常
    • previous_page_number:返回上一页的页码,如果上一页不存在抛出 InvalidPage 异常
    • len():返回当前页的数据 (对象) 个数

三、示例

  • 路由配置

    path(r'^stupage/<int:nowPage>/$',views.stuPage,name='page'),
  • 视图

    def stuPage(req,nowPage): allStu = Students.stuObj.all() pag = Paginator(allStu,6) if int(nowPage)>=int(pag.num_pages): nowPage = pag.num_pages try: page = pag.page(nowPage) except: page = pag.page(pag.num_pages) # print(page) return render(request,'studentPage.html',{'students':page})
  • 模板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body> 展示分页的数据 {% for i in data.object_list %} <p>{{i.username}}</p> {% endfor %} 展示分页的页码 <nav aria-label="Page navigation"> <ul class="pagination"> <li> <a href="{% url'App:showPage'%}?page=1" aria-label="Next"> <span aria-hidden="true">首页</span> </a> </li> <li {% if not data.has_previous %}class="disabled"{% endif %}> <a {% if data.has_previous %} href="{% url'App:showPage'%}?page={{data.previous_page_number}}" {% endif %} aria-label="Previous"> <span aria-hidden="true">&laquo;</span> </a> </li> {% for index in data.paginator.page_range %} <li {% if index == data.number %}class="active"{% endif %}><a href="{% url'App:showPage'%}?page={{index}}">{{index}}</a></li> {% endfor %} <li {% if not data.has_next %}class="disabled"{% endif %}> <a {% if data.has_next %} href="{% url'App:showPage'%}?page={{data.next_page_number}}" {% endif %} aria-label="Next"> <span aria-hidden="true">&raquo;</span> </a> </li> <li {% if not data.paginator.num_pages %}class="disabled"{% endif %}> <a {% if data.paginator.num_pages %} href="{% url'App:showPage'%}?page={{data.paginator.num_pages}}" {% endif %} aria-label="Next"> <span aria-hidden="true">尾页</span> </a> </li> </ul> </nav> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。--> <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </body> </html>

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-26发表,共计2396字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7798998
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...