博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Django学习] Django基础(5)_优化分页器
阅读量:5892 次
发布时间:2019-06-19

本文共 1922 字,大约阅读时间需要 6 分钟。

一. 基本样式

主要优化内容:

#1. 当前页高亮#2. 显示当前页及其前后两页#3. 显示省略号标记#4. 显示首尾页#5. 将“页数描述文字”放置在“页码栏”下方#6. “页码栏”与“页数描述文字”居中显示  

二. 当前页高亮

  在模版中判断显示的页码是否是当前的页码,若是,添加class='active'属性

{% for page_num in page_of_blogs.num_pages%}   {% if page_num == page_of_blogs.number %}     
  • {
    { page_num }}
  •   {% else %}     
  • {
    { page_num }}
  •   {% 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 %}     
  • {
    { page_num }}
  •   {% else %}     
  • {
    { page_num }}
  •   {% 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 %}        
  • {
    { page_num }}
  • {% else %} # 取消当前页为'...'的链接功能 {% if page_num == '...' %}
  • {
    { page_num }}
  • {% else %}
  • {
    { page_num }}
  • {% 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)

    六. 将“页数描述”放置在“页码栏”下方,并居中显示

    共有{

    { page_of_blogs.paginator.count}}篇博客, 当前为第{
    {page_of_blogs.number}}页, 共{
    {page_of_blogs.paginator.num_pages}}页

    div.paginator {	text-align: center;}

     


    注明:学习资料来自以及 

    转载于:https://www.cnblogs.com/AngryZe/p/9259701.html

    你可能感兴趣的文章
    毕业论文一次性修改所有字母和数字的字体
    查看>>
    结构体:HASH表模板
    查看>>
    [转]理解Linux文件系统之inode
    查看>>
    在i3 Cpu上允许64位系统
    查看>>
    视频编解码学习之五:差错控制及传输
    查看>>
    Postman教程
    查看>>
    python模块--os模块
    查看>>
    HSSFRow获取单元格方法与区别
    查看>>
    洛谷 1365 WJMZBMR打osu! / Easy
    查看>>
    删除UINavigationItem上的BarButtonItem
    查看>>
    数据分析相关模块
    查看>>
    Python数据结构1-----基本数据结构和collections系列
    查看>>
    SQL Denali-FileTable
    查看>>
    C# 图像处理:复制屏幕到内存中,拷屏操作
    查看>>
    PHP微信支付流程
    查看>>
    linux下单节点oracle数据库间ogg搭建
    查看>>
    PLSQL Developer软件使用大全
    查看>>
    swift三方库
    查看>>
    杭州之行
    查看>>
    oracle ORA-00917: missing comma 是因为少逗号
    查看>>