搜索
写经验 领红包
 > 电器

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>

关于前端部分就不再赘述,愿所有开发人员的目的地都是星辰大海。

本文内容由小萱整理编辑!