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解析xml模块封装代码
Feb 07 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
python通过get,post方式发送http请求和接收http响应的方法
May 26 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
Python异常处理操作实例详解
May 10 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
python如何使用代码运行助手
Jul 03 Python
Python爬取网页信息的示例
Sep 24 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
pytorch 如何使用float64训练
May 24 Python
Python 键盘事件详解
Nov 11 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python实现图片识别汽车功能
2018/11/30 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python实现图像全景拼接
2020/03/27 Python
Python正则表达式如何匹配中文
2020/05/27 Python
活动总结报告怎么写
2014/07/03 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
学习党章的体会
2014/11/07 职场文书
销售经理岗位职责
2015/01/31 职场文书
品质保证书格式
2015/02/28 职场文书
会计求职自荐信范文
2015/03/04 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis