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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
Python 串口读写的实现方法
Jun 12 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
Python实现微信小程序支付功能
Jul 25 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
tensorflow 实现数据类型转换
Feb 17 Python
python使用pymysql模块操作MySQL
Jun 16 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php 高性能书写
2010/12/11 PHP
JS 网站性能优化笔记
2011/05/24 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
python中的global关键字的使用方法
2019/08/20 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
python利用线程实现多任务
2020/09/18 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
办公室文员工作职责
2014/01/31 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书