功能
主要文件在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上:源码地址