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 (1)
Oct 31 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
python取代netcat过程分析
Feb 10 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
pycharm快捷键汇总
Feb 14 Python
Python3监控疫情的完整代码
Feb 20 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python 如何在测试中使用 Mock
Mar 01 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的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
php和asp语法上的区别总结
2019/05/12 PHP
使用PHP开发留言板功能
2019/11/19 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python3安装speech语音模块的方法
2018/12/24 Python
使用python3实现操作串口详解
2019/01/01 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python多线程分块读取文件
2019/08/29 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python缓存技术实现过程详解
2019/09/25 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python configparser模块操作代码实例
2020/06/08 Python
开业庆典活动策划方案
2014/09/21 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL