[Django学习] Django基础(5)_优化分页器
一. 基本样式
主要优化内容:
#1. 当前页高亮
#2. 显示当前页及其前后两页
#3. 显示省略号标记
#4. 显示首尾页
#5. 将“页数描述文字”放置在“页码栏”下方
#6. “页码栏”与“页数描述文字”居中显示
二. 当前页高亮
在模版中判断显示的页码是否是当前的页码,若是,添加class='active'属性
{% for page_num in page_of_blogs.num_pages%} {% if page_num == page_of_blogs.number %} <li class='active'><span>{{ page_num }}</span></li> {% else %} <li><a href="?page={{ page_num }}">{{ page_num }}</a></li> {% endif %} {% endfor %}
三. 显示当前页及其前后两页
前两页 | 前一页 | 当前页 | 后一页 | 后两页 |
current_page-2 | current_page-1 | current_page | current_page+1 | current_page+2 |
current_page-2 最小值为1,current_page+2最大值为分页器的最大页数
# 获取当前页码
current_page_num = page_of_blogs.number
# 设置前后可显示页码范围
page_range = list(range(max(current_page_num-2,1), current_page_num)) + \ list(range(current_page_num, min(current_page_num + 2, paginator.num_pages) + 1))
# 修改循环显示的页码范围
{% for page_num in page_range %} {% if page_num == page_of_blogs.number %} <li class='active'><span>{{ page_num }}</span></li> {% else %} <li><a href="?page={{ page_num }}">{{ page_num }}</a></li> {% endif %}
{% endfor %}
四. 显示省略号标记
# 添加省略号标记
if (page_range[0] - 1 >= 2):page_range.insert(0,'...')
if (paginator.num_pages - page_range[-1] >= 2):page_range.append('...')
{% for page_num in page_range %}{% if page_num == page_of_blogs.number %}<li class='active'><span>{{ page_num }}</span></li>{% else %}# 取消当前页为'...'的链接功能{% if page_num == '...' %}<li><span>{{ page_num }}</span></li>{% else %}<li><a href="?page={{ page_num }}">{{ page_num }}</a></li>{% endif %} {% endif %}
{% endfor %}
五. 显示首尾页
将首页和尾页加入到page_range中
# 先加入'...'标记# 再将第一页与最后一页始终显示
if (page_range[0] != 1):page_range.insert(0,1)
if (page_range[-1] != paginator.num_pages):page_range.append(paginator.num_pages)
六. 将“页数描述”放置在“页码栏”下方,并居中显示
<div class="paginator">+<ul class="pagination"></ul><p>共有{{ page_of_blogs.paginator.count}}篇博客, 当前为第{{page_of_blogs.number}}页, 共{{page_of_blogs.paginator.num_pages}}页</p>
</div>
div.paginator {text-align: center;
}
注明:学习资料来自“再敲一行代码的个人空间”以及“杨仕航的博客”
转载于:https://www.cnblogs.com/AngryZe/p/9259701.html
[Django学习] Django基础(5)_优化分页器相关推荐
- 强化学习之基础入门_强化学习基础
强化学习之基础入门 Reinforcement learning is probably one of the most relatable scientific approaches that re ...
- python学习需要基础吗_要学 Python 需要怎样的基础?
人邮君来补充一点,编程也需要"语感训练"的理论基础.[内附Python语感训练资料] 看似虚无缥缈的"语感",对编程也有用? 在上世纪80年代,有一部BBC推出 ...
- 重拾强化学习的核心概念_强化学习的核心概念
重拾强化学习的核心概念 By Hannah Peterson and George Williams (gwilliams@gsitechnology.com) 汉娜·彼得森 ( Hannah Pet ...
- Django学习之路-基础篇
Django 学习之路 一.Django项目创建 1.项目结构 1.1. settings.py 文件 1.2 URL 1.3 视图函数 1.4 路由配置-path 二.请求与响应 2.1.请求和响应 ...
- django构建网页_通过解决问题的方式学习django,律师如何构建副业
django构建网页 This post was originally published on Codementor's blog 该帖子最初发布在 Codementor的博客上 "I'm ...
- python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目
文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...
- 【Django 学习笔记】1、基础概念和MVT架构
0x00 Django 简介 Django是Python写的开源Web开发框架,主要目的是做一个简便.快速的开发数据库驱动的网站 Django遵循MVC设计模式,在Django中有个专有名词,叫做MV ...
- 千锋Django学习笔记
千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...
- 学习django就看这本书了!django book 2.0中文版
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/29/ 来源:python黑洞网 dj ...
最新文章
- cytocape绘图(三)
- 【网络】HTTP基础总结
- Android 使用AIDL实现进程间的通信
- centos 关闭防火墙
- eclipse 输入卡顿_7个小技巧,解决eclipse卡顿问题
- Spring MVC:表单处理卷。 2 –复选框处理
- 任正非:感谢美国,帮我把华为给全世界都宣传了
- 简单小知识 记录一下 慢慢更新积累
- OpenCV轮廓vectorvector
- 中国水稻大省创新大米销售模式 启动2019首场拍卖
- Python实现批量网站URL存活检测
- java查询三级树(三级目录)
- 如何在Win10安装“Siemens TIA Openness”
- [Hulu] 数组最大价值
- 京东数据库智能运维平台建设之路
- 基于Stm32f103利用模拟iic驱动LM75A温度传感器
- SAP ITS Mobile 系统实例(一)
- C++:图片数字水印-基于OpenCV+LSB
- 陈旭数据科学与计算机学院,数据科学与计算机学院硕士研究生招生专业及各专业导师...
- 小波变换(wavelet transform,WT)
热门文章
- 调多线程中的消息发送
- Webservice接口
- 文件夹去掉git版本控制_git 从版本控制中删除文件及.gitignore的用法
- matlab运行时风扇,TCFD和CAESES耦合优化案例-轴流风扇
- Web前端入门学习之JS基础知识梳理汇总
- python 迭代器、生成器知识点总结
- python可以做仿真吗agent_python agent应用
- python 遍历矩阵_Python3算法之十:矩阵旋转
- assertionerror python_Python 基础(十四): 错误和异常
- jieba分词_wordcloud词云美化——jieba结巴中文分词(将长句拆分)