首页 > 编程 > Python > 正文

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

2019-11-25 15:35:36
字体:
来源:转载
供稿:网友

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

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

安装模块:

pip install django-pure-pagination

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

INSTALLED_APPS = (  ...  'pure_pagination',)

在view.py文件中

from django.shortcuts import renderrom .models import mymodelfrom pure_pagination import Paginator, EmptyPage, PageNotAnIntegerdef 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相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表