一. 基本样式

主要优化内容:

#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)_优化分页器相关推荐

  1. 强化学习之基础入门_强化学习基础

    强化学习之基础入门 Reinforcement learning is probably one of the most relatable scientific approaches that re ...

  2. python学习需要基础吗_要学 Python 需要怎样的基础?

    人邮君来补充一点,编程也需要"语感训练"的理论基础.[内附Python语感训练资料] 看似虚无缥缈的"语感",对编程也有用? 在上世纪80年代,有一部BBC推出 ...

  3. 重拾强化学习的核心概念_强化学习的核心概念

    重拾强化学习的核心概念 By Hannah Peterson and George Williams (gwilliams@gsitechnology.com) 汉娜·彼得森 ( Hannah Pet ...

  4. Django学习之路-基础篇

    Django 学习之路 一.Django项目创建 1.项目结构 1.1. settings.py 文件 1.2 URL 1.3 视图函数 1.4 路由配置-path 二.请求与响应 2.1.请求和响应 ...

  5. django构建网页_通过解决问题的方式学习django,律师如何构建副业

    django构建网页 This post was originally published on Codementor's blog 该帖子最初发布在 Codementor的博客上 "I'm ...

  6. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  7. 【Django 学习笔记】1、基础概念和MVT架构

    0x00 Django 简介 Django是Python写的开源Web开发框架,主要目的是做一个简便.快速的开发数据库驱动的网站 Django遵循MVC设计模式,在Django中有个专有名词,叫做MV ...

  8. 千锋Django学习笔记

    千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...

  9. 学习django就看这本书了!django book 2.0中文版

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/29/ 来源:python黑洞网 dj ...

最新文章

  1. cytocape绘图(三)
  2. 【网络】HTTP基础总结
  3. Android 使用AIDL实现进程间的通信
  4. centos 关闭防火墙
  5. eclipse 输入卡顿_7个小技巧,解决eclipse卡顿问题
  6. Spring MVC:表单处理卷。 2 –复选框处理
  7. 任正非:感谢美国,帮我把华为给全世界都宣传了
  8. 简单小知识 记录一下 慢慢更新积累
  9. OpenCV轮廓vectorvector
  10. 中国水稻大省创新大米销售模式 启动2019首场拍卖
  11. Python实现批量网站URL存活检测
  12. java查询三级树(三级目录)
  13. 如何在Win10安装“Siemens TIA Openness”
  14. [Hulu] 数组最大价值
  15. 京东数据库智能运维平台建设之路
  16. 基于Stm32f103利用模拟iic驱动LM75A温度传感器
  17. SAP ITS Mobile 系统实例(一)
  18. C++:图片数字水印-基于OpenCV+LSB
  19. 陈旭数据科学与计算机学院,数据科学与计算机学院硕士研究生招生专业及各专业导师...
  20. 小波变换(wavelet transform,WT)

热门文章

  1. 调多线程中的消息发送
  2. Webservice接口
  3. 文件夹去掉git版本控制_git 从版本控制中删除文件及.gitignore的用法
  4. matlab运行时风扇,TCFD和CAESES耦合优化案例-轴流风扇
  5. Web前端入门学习之JS基础知识梳理汇总
  6. python 迭代器、生成器知识点总结
  7. python可以做仿真吗agent_python agent应用
  8. python 遍历矩阵_Python3算法之十:矩阵旋转
  9. assertionerror python_Python 基础(十四): 错误和异常
  10. jieba分词_wordcloud词云美化——jieba结巴中文分词(将长句拆分)