在列表显示数据时,分页显示是必不可少的功能,活不多说,直接干货拿走,django提供了一个分页器Paginator,下面的例子说明如何使用它。
1,写一个带分页功能的查询方法
编辑 mywebwebviews.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,前端页面获取并显示数据
在mywebweb emplates目录新建一个taskList.html文件,内容如下:
{% extends 'base.html' %}
{% block content %}
{% if contacts.paginator.count > 0 %} {% for contact in contacts %} {% endfor %} {% else %} {% endif %}任务名称 操作者 任务描述 开始日期 结束日期 任务评价 {{ contact.task_name }} {{ contact.task_user }} {{ contact.task_describe }} {{ contact.task_start_date }} {{ contact.task_end_date }} {{ contact.task_result }} 没有任务数据
{# 分页HTML代码 #}
{% if contacts.has_previous %}
上一页
{% endif %}
Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
{% if contacts.has_next %}
下一页
{% endif %}
{% endblock %}
3,URL映射
编辑urls.py文件,加入:
url(r'^tasklist/', views.task_list),
页面更新:2024-04-02
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号