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在控制台输出进度条的方法
Jun 20 Python
Python+django实现简单的文件上传
Aug 17 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
Python global全局变量函数详解
Sep 18 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
OpenCV图像颜色反转算法详解
May 13 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 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
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
python实现单向链表详解
2018/02/08 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python 日期操作类代码
2018/05/05 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
村居抓节水倡议书
2014/05/19 职场文书
诚信承诺书模板
2014/05/26 职场文书
无房证明范本
2014/09/17 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
教师个人成长总结
2015/02/11 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python