> 电器
djago实现分页功能(djago分页器的用法)
导语:Django实现分页
话不多说,先上效果图:
热乎乎的代码紧随其后,思路可能比较割裂,有更优雅的写法,小伙伴们多多建言哈。
后端python:from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage, InvalidPage 定义返回前端的结果模块 request.encoding=&39; data_list=Data_List.objects.all() 调用分页数据模块,返回第一页数据对象 to_range=torange(to_page,1)定义字典对象 response[&39;]=to_page39;range_list&字典键值对 return render(request,&39;,response)定义分页数据模块 paginator = Paginator(table_list,2) try: result = paginator.page(page) except PageNotAnInteger: 如果请求的页数不存在, 重定向页面 result = paginator.page(1) except EmptyPage: 定义分页页码模块 if topage.paginator.num_pages<=10:当总页数>10的情况 if page<=5:如果当前页码在后五个页码范围内,则显示页码范围为后10个 result=range(topage.paginator.num_pages-9,topage.paginator.num_pages+1) else:返回对象是一个range列表
前端html:<tr> <td colspan=&34;> <div class=&34;>共{{data_list.paginator.count}}条记录,当前第{{data_list.number}}/{{data_list.paginator.num_pages}}页,每页20条记录</div> <div class=&34;> <ul class=&34;> {% if data_list.has_previous %} <li id=&34;><a>«</a></li> {% endif %} {% for item in range_list %} {% if data_list.number == item %} <li class=&34; ><a>{{ item }}</a></li> {% else %} <li><a class=&34;>{{ item }}</a></li> {% endif %} {% endfor %} {% if data_list.has_next %} <li id=&34;><a >»</a></li> {% endif %} </ul> </div> </td></tr>
关于前端部分就不再赘述,愿所有开发人员的目的地都是星辰大海。
本文内容由小萱整理编辑!