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脚本实现xls(xlsx)转成csv
Apr 10 Python
python自带的http模块详解
Nov 06 Python
python音频处理用到的操作的示例代码
Oct 27 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
python中@contextmanager实例用法
Feb 07 Python
分析Python list操作为什么会错误
Nov 17 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+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
python修改文件内容的3种方法详解
2019/11/15 Python
详解django中Template语言
2020/02/22 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
学期自我评价
2014/01/27 职场文书
学校元旦晚会方案
2014/02/19 职场文书
董事长秘书工作职责
2014/06/10 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
学生逃课检讨书
2015/02/17 职场文书
会计求职信怎么写
2015/03/20 职场文书
入队仪式主持词
2015/07/04 职场文书