后台Python代码:
users = Users.objects.all()
if count == "": # django中默认返回空值,所以加以判断,并设置默认值为1
count = 10
else: # 如果有返回在值,把返回值转为整数型
int(count)
paginator = Paginator(users, count)
if pindex == "": # django中默认返回空值,所以加以判断,并设置默认值为1
pindex = 1
else: # 如果有返回在值,把返回值转为整数型
int(pindex)
page = paginator.page(pindex) # 传递当前页的实例对象到前端
return render(request, "xxxx/xxxxx.html",{"users": users, "page": page}
前端顶部引用Django标签语法静态和tags:
{% load static %}
{% load staticfiles %}
{% load count %}
前端Html代码:
<!-- 整个底部底部分页按钮显示 -->
<nav aria-label="Page navigation" class="subject-class-nav-page">
<div class="pagination">
<ul class="pagination">
{% if page.has_previous %} <!--# 判断当前页是否有上一页-->
<li><a onclick="searchFunction(10,{{ page.previous_page_number }})"
aria-label="Previous">
<span aria-hidden="true">«</span></a></li>
{% endif %}
{% for num in page.paginator.page_range %} <!--# 循环遍历页码列表,并展示到底部-->
{% if num == page.number %}
<li class="active"><a href="">{{ num }}</a></li>
{% else %}
{% if page.number <= 5 %}
{% if num < 10 %}
<li><a onclick="searchFunction(10,{{ num }})">{{ num }}</a></li>
{% endif %}
{% elif page.number > 5 and page.number <= page.paginator.num_pages|reduce:5 %}
{% if num > page.number|reduce:5 and num < page.number|plus:5 %}
<li><a onclick="searchFunction(10,{{ num }})">{{ num }}</a></li>
{% endif %}
{% elif page.number > page.paginator.num_pages|reduce:5 %}
{% if num > page.paginator.num_pages|reduce:9 %}
<li><a onclick="searchFunction(10,{{ num }})">{{ num }}</a></li>
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% if page.has_next %} <!-- 判断当前页是否有下一页-->
<li><a onclick="searchFunction(10,{{ page.next_page_number }})" aria-label="Next">
<span aria-hidden="true">»</span></a></li>
{% endif %}
</ul>
<div class="pagination-numpages">
<span>总页数:</span><span>{{ page.paginator.num_pages }}</span>
<span>总数:</span><span>{{ page.paginator.count }}</span>
<span>单页个数:</span><span>{{ page.paginator.per_page }}</span>
</div>
</div>
</nav>
Django 模板语法标签 templatetags: count.py
@register.filter
def reduce(value, value2):
try:
return int(value) - int(value2)
except:
return 0

这篇博客详细介绍了如何在Django后台上使用Python代码实现数据分页,并在前端利用模板标签进行展示。通过设置默认值和判断条件,确保了分页功能的正常工作,同时使用自定义模板过滤器`reduce`来处理页码计算。在HTML中,利用条件判断和循环展示了分页链接,包括上一页、下一页以及当前页和附近页码。此外,还展示了总页数、总数和每页数量等信息。
1964

被折叠的 条评论
为什么被折叠?



