分页器

导入包

  from django.core.paginator import Paginator

导入对应对象

  from testcase_app.models import TestCase

获取对象所有数据

  cases=TestCase.objects.all()

使用Paginator函数进行数据分页

   p=Paginator(cases,2)

获取全部数据 p.count   获取页数p.page_range

 

首先实现接口实现,让数据按接口传出的数据展现

def testcase_manage(request):
case_list=TestCase.objects.all()
p=Paginator(case_list,5) #构造分页器,每5条数据为一页
page=request.GET.get('page') #从前端获取当前页数
try:
contacts=p.page(page) #获取当前页数据
except PageNotAnInteger: #不是整数
contacts = p.page(1)
except EmptyPage: #超出页数
contacts= p.page(p.num_pages)
return render(request,"case_list.html",{"type":"manage","cases":contacts})



然后去前端增加对应样式:
          <!--分页器-->
<div>
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
{% if cases.has_previous %} <!--判断当前页面,上一页有没数据-->
<a href="?page={{ cases.previous_page_number }}" aria-label="Previous"> <!--获取上一页数据-->
<span aria-hidden="true">&laquo</span>
</a>
{% endif %}
</li>
<li><a href="">{{ cases.number }}</a></li>
{% if cases.has_next %} <!--判断下一页是否有数据-->
<li>
<a href="?page={{ cases.next_page_number }}" aria-label="Next"> <!--获取上一页数据-->
<span aria-hidden="true">&raquo</span>
</a>
</li>
{% endif %}
<li> <a href="#">共:{{ cases.paginator.num_pages }}页</a></li>
{# <li> <a href="#">2</a></li>#}

</ul>
</nav>
</div>
</div>



展现出的实际效果:

 

 Pageinator函数方法:

 

 

 

 

posted @ 2021-01-06 17:21  7dao  阅读(17)  评论(0)    收藏  举报