admin 管理员组

文章数量: 887021

Django自带的分页函数使用

Django自带了一个分页函数,可以直接使用该函数进行分页数据展示,下面直接上代码看具体用法

具体使用

	from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
	
    cases = ['case01','case02','case03','case04','case05']
    # 将cases进行分页处理  每页5条数据
    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分页函数还有别的用法可以参考官方文档

本文标签: 分页 自带 函数 Django Pagination