网络编程
位置:首页>> 网络编程>> Python编程>> Django实现简单分页功能的方法详解

Django实现简单分页功能的方法详解

作者:雷子-LL  发布时间:2021-02-07 01:54:23 

标签:Django,分页

本文实例讲述了Django实现简单分页功能的方法。分享给大家供大家参考,具体如下:

使用django的第三方模块django-pure-pagination

安装模块:


pip install django-pure-pagination

将'pure_pagination'添加到settings.py文件中


INSTALLED_APPS = (
 ...
 'pure_pagination',
)

在view.py文件中


from django.shortcuts import render
rom .models import mymodel
from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
def NewsList(request):
 all_news = mymodel.objects.all().order_by('-add_time')
 # 分页功能
 try:
   page = request.GET.get('page', 1)
 except PageNotAnInteger:
   page = 1
 p = Paginator(all_news, 3, request=request)
 news = p.page(page)
 return render(request, 'rdxw.html', {'all_news': news})

在template.py文件中调用view传递的参数'all_news'需要加上'.object_list'


{% extends 'base.html' %}
{% block content %}
<ul>
{% for new in all_news.object_list %}
 <li>{{new.content}}</li>
{% endblock %}
</ul>

实现翻页的部分:


<div class="pageturn">
 <ul class="pagelist">
   {% if all_news.has_previous %}
     <li class="long"><a href="?{{ all_news.previous_page_number.querystring }}" rel="external nofollow" >上一页</a></li>
   {% endif %}
   {% for page in all_news.pages %}
     {% if page %}
       {% ifequal page all_news.number %}
         <li class="active"><a href="?{{ page.querystring }}" rel="external nofollow" rel="external nofollow" >{{ page }}</a></li>
       {% else %}
         <li><a href="?{{ page.querystring }}" rel="external nofollow" rel="external nofollow" class="page">{{ page }}</a></li>
       {% endifequal %}
     {% else %}
       <li class="none"><a href="">...</a></li>
     {% endif %}
   {% endfor %}
   {% if all_news.has_next %}
     <li class="long"><a href="?{{ all_news.next_page_number.querystring }}" rel="external nofollow" >下一页</a></li>
   {% endif %}
 </ul>
</div>

样式较文档提供的简化了很多,方便使用。


.pageturn .pagelist {
 display: table-cell;
 vertical-align: middle;
 overflow: hidden;
}
.pageturn li {
 width: 30px;
 height: 30px;
 line-height: 30px;
 margin-left: 10px;
 float: left;
 text-align: center;
}
.pageturn li:first-child {
 margin-left: 0;
}
.pageturn li:hover a, .pageturn .active a {
 background: #717171;
 color: #fff;
 border-color: #eaeaea;
}
.pageturn a {
 border: 1px solid #eaeaea;
 display: block;
 height: 28px;
 color: #6c6c6c;
}
.pageturn .long {
 width: 100px;
}
.pageturn .none a {
 border: 0;
}
.pageright {
 float: right;
 width: auto;
 display: inline;
 clear: none;
 margin-top: 10px;
}

希望本文所述对大家Python程序设计有所帮助。

来源:http://www.cnblogs.com/thunderLL/p/6962786.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com