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


Posted in Python onDecember 05, 2017

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
《Python之禅》中对于Python编程过程中的一些建议
Apr 03 Python
Python代码调试的几种方法总结
Apr 15 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python实现视频读取和转化图片
Dec 10 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
用python计算文件的MD5值
Dec 23 Python
Python 调用C++封装的进一步探索交流
Mar 04 Python
基于Python 函数和方法的区别说明
Mar 24 Python
python如何进行基准测试
Apr 26 Python
Python生成8位随机字符串的方法分析
Dec 05 #Python
在Python程序员面试中被问的最多的10道题
Dec 05 #Python
Python对列表去重的多种方法(四种方法)
Dec 05 #Python
详解Python在七牛云平台的应用(一)
Dec 05 #Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 #Python
python调用Delphi写的Dll代码示例
Dec 05 #Python
Python字典数据对象拆分的简单实现方法
Dec 05 #Python
You might like
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
使用js获取图片原始尺寸
2014/12/03 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python如何实现int函数的方法示例
2018/02/19 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
盛大二次面试题
2016/11/18 面试题
Delphi笔试题
2016/11/14 面试题
六年级数学教学反思
2014/02/03 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
法人代表证明书
2014/09/18 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
Python爬取某拍短视频
2021/06/11 Python
mysql自增长id用完了该怎么办
2022/02/12 MySQL
MySQL创建管理LIST分区
2022/04/13 MySQL