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 私有函数的实例详解
Sep 11 Python
Python装饰器用法示例小结
Feb 11 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
python实现批处理文件
Jul 28 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
Python通过format函数格式化显示值
Oct 17 Python
python - timeit 时间模块
Apr 06 Python
Python matplotlib绘制雷达图
Apr 13 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分页函数
2006/10/09 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
javascript数组随机排序实例分析
2015/07/22 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
vue中动态select的使用方法示例
2019/10/28 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
幼师求职自荐信范文
2014/01/26 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
火箭队口号
2014/06/18 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
观后感开头
2015/06/19 职场文书
离职信范文
2015/06/23 职场文书