Django自带的分页函数使用
Django自带了一个分页函数,可以直接使用该函数进行分页数据展示,下面直接上代码看具体用法
具体使用
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
cases = ['case01','case02','case03','case04','case05']
p = Paginator(cases, 5)
current_page = request.GET.get('current_page')
try:
page_cases = p.page(current_page)
except PageNotAnInteger:
page_cases = p.page(1)
except EmptyPage:
page_cases = p.page(1)
param = {"cases": page_cases}
return render(request, 'target.html', param)
页面接收并使用
<ul style="float: right" class="pagination">
<li>
{# 查看是否有上一页 #}
{% if cases.has_previous %}
{# cases.previous_page_number获取上一页页数 #}
<a href="/target?current_page={{ cases.previous_page_number }}">上一页</a>
{% else %}
<a disabled="true" href="#">上一页</a>
{% endif %}
</li>
{# 遍历页数 #}
{% for page in cases.paginator.page_range %}
<li>
<a href="/target?current_page={{ page }}">{{ page }}</a>
</li>
{% endfor %}
<li>
{# 查看是否有下一页 #}
{% if cases.has_next %}
{# cases.next_page_number获取下一页页数 #}
<a href="/target?current_page={{ cases.next_page_number }}">下一页</a>
{% else %}
<a style="" disabled="true" href="#">下一页</a>
{% endif %}
</li>
</ul>
django分页函数还有别的用法可以参考官方文档
|