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中对象迭代与反迭代的技巧总结
Sep 17 Python
python2.x实现人民币转大写人民币
Jun 20 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
python 实现多维数组(array)排序
Feb 28 Python
python随机模块random的22种函数(小结)
May 15 Python
Python计算信息熵实例
Jun 18 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
详解Python中的Lock和Rlock
Jan 26 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 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 strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
JS动态调用方法名示例介绍
2013/12/18 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python 探针的实现原理
2016/04/23 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
党员创先争优承诺书
2014/03/26 职场文书
期末学生评语大全
2014/04/24 职场文书
冬季安全检查方案
2014/05/23 职场文书
委托书怎样写
2014/08/30 职场文书
司机岗位职责
2015/02/04 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
导游词之天津盘山
2019/11/01 职场文书