Django 数据分页

在列表显示数据时,分页显示是必不可少的功能,django提供了一个分页器Paginator,下面的例子说明如何使用它。


1,写一个带分页功能的查询方法

编辑 myweb\web\views.py文件,加入如下代码


from models import Tasks

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

from django.views.decorators import csrf


#任务列表

def task_list(request):

    contact_list = Tasks.objects.all().order_by('-task_start_date')

    #每页显示25条

    paginator = Paginator(contact_list, 25) 

    page = request.GET.get('page')

    try:

        contacts = paginator.page(page)

    except PageNotAnInteger:

        contacts = paginator.page(1)

    except EmptyPage:

        contacts = paginator.page(paginator.num_pages)

    return render(request, 'taskList.html', {'contacts': contacts})


这里是将数据返回到前端页面 taskList.html页面。



2,前端页面获取并显示数据

在myweb\web\templates目录新建一个taskList.html文件,内容如下:

{% extends 'base.html' %}

{% block content %} 

<table class="tableList">

<thead>

<tr>

<th>任务名称</th>

<th>操作者</th>

<th>任务描述</th>

<th>开始日期</th>

<th>结束日期</th>

<th>任务评价</th>

</tr>

</thead>

<tbody>

{% if contacts.paginator.count > 0 %}

{% for contact in contacts %}

<tr>

<td> {{ contact.task_name }} </td>

<td> {{ contact.task_user }} </td>

<td> {{ contact.task_describe }}</td>

<td> {{ contact.task_start_date }} </td>

<td> {{ contact.task_end_date }} </td>

<td> {{ contact.task_result }}</td>

</tr>

{% endfor %}

{% else %}

<tr>

<td colspan="10" align="center">没有任务数据</td>

</tr>

{% endif %}

</tbody>

</table>



{# 分页HTML代码 #}

<div class="pagination">

    <span class="step-links">

        {% if contacts.has_previous %}

            <a href="?page={{ contacts.previous_page_number }}">上一页</a>

        {% endif %}


        <span class="current">

            Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.

        </span>


        {% if contacts.has_next %}

            <a href="?page={{ contacts.next_page_number }}">下一页</a>

        {% endif %}

    </span>

</div>

{% endblock %}


3,URL映射

编辑urls.py文件,加入:


url(r'^tasklist/', views.task_list),


该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链