分页工具

功能

主要文件在utils-paging.py

自己写的简单的分页

为了可扩展前端样式,并没有自动生成 分页代码仅将其 进行封装 配合前端的模版代码使用

API

Paging(page_now, data, page_nub=11,  page_index=10)
:param page_now:    当前页数
:param data:        总数据
:param page_nub:    分页最多显示多少个标签 默认11页
:param page_index:  每页展示多少数据      默认10条
  • has_previous —— 是否有上一页
  • has_next —— 是否有下一页
  • previous_page —— 上一页页码数
  • next_page —— 下一页页码数
  • display_data —— 展示数据列表
  • show_page —— 分页数据
  • home_page —— 首页
  • trailer_page —— 尾页

实例

应用方式较为简单: 以django为例

views.py

def lists(request, page=1):
    """显示逻辑"""
    # 拿到所有数据
    books_obj = Book.objects.all()

    # 分页
    from utils.paging import Paging
    paging = Paging(page, books_obj)
    # 

    return render(request, 'books.html', {'books': books_obj, 'paging': paging})

前端样式可自定制例如

<nav>
        <ul class="pagination">
            {# 首页 #}
            <li><a href="{% url 'lists' paging.home_page %}">首页</a></li>

            {# 是否有上一页 #}
            {% if paging.has_previous %}
                <li><a href="{% url 'lists' paging.previous_page %}" aria-label="Previous"><span
                        aria-hidden="true">?</span></a></li>
            {% else %}
                <li class="disabled"><a href="{% url 'lists' paging.previous_page %}" aria-label="Previous"><span
                        aria-hidden="true">?</span></a></li>
            {% endif %}

            {# 分页条展示 #}
            {% for page in paging.show_page %}
                {% if page == paging.page_now %}
                    <li class="active"><a href="{% url 'lists' page %}">{{ page }}</a></li>
                {% else %}
                    <li><a href="{% url 'lists' page %}">{{ page }}</a></li>
                {% endif %}
            {% endfor %}


            {# 是否有下一页 #}
            {% if paging.has_next %}
                <li><a href="{% url 'lists' paging.next_page %}" aria-label="Next"><span aria-hidden="true">?</span></a>
                </li>
            {% else %}
                <li class="disabled"><a href="{% url 'lists' paging.next_page %}" aria-label="Next"><span
                        aria-hidden="true">?</span></a></li>
            {% endif %}


            {# 尾页 #}
            <li><a href="{% url 'lists' paging.trailer_page %}">尾页</a></li>
        </ul>
    </nav>

完整代码放在Github上:源码地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值