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中关于中文编码问题的处理建议
Apr 08 Python
分享python数据统计的一些小技巧
Jul 21 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
Python基于mysql实现学生管理系统
Feb 21 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Django实现发送邮件找回密码功能
Aug 12 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
Mar 09 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
python 实现两个变量值进行交换的n种操作
Jun 02 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
关于时间计算的结总
2006/12/06 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
Python实现的几个常用排序算法实例
2014/06/16 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python元字符的用法实例解析
2018/01/17 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
python如何构建mock接口服务
2021/01/28 Python
遗体告别仪式答谢词
2014/01/23 职场文书
社团活动总结范文
2014/04/26 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
高三英语教学计划
2015/01/23 职场文书
业务员管理制度范本
2015/08/06 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
php 原生分页
2021/04/01 PHP
MySql新手入门的基本操作汇总
2021/05/13 MySQL
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android