django-pure-pagination 组件

用于在 django 中自动创建分页

官方详见 github : 这里

安装

pip install django-pure-pagination

配置

settings.py

加入 apps 中 需要加入到 apps 中

INSTALLED_APPS = (...'pure_pagination',
)

使用

views.py

Paginator 实例的时候需要传入 参数

实例对象 每页显示数量 request

ps:

  官方的文档中中未写明. 所以会报错缺少参数

  因此这里要稍微注意

from django.shortcuts import render_to_responsefrom pure_pagination import Paginator, EmptyPage, PageNotAnIntegerdef index(request):try:page = request.GET.get('page', 1)except PageNotAnInteger:page = 1objects = ['john', 'edward', 'josh', 'frank']# Provide Paginator with the request object for complete querystring generation
  p = Paginator(all_orgs, 5, request=request)
  people = p.page(page) 

  return render_to_response('index.html', { 'people': people, })

index.html

直接通过 {{ people.render }} 可以自动帮你生成分页. 但是样式没法改的

如果想使用自己的样式分页则需要另一种方式

{# index.html #}
{% extends 'base.html' %}{% block content %}{% for person in people.object_list %}<div>First name: {{ person }}</div>
{% endfor %}{# The following renders the pagination html #}
<div id="pagination">{{ people.render }}
</div>{% endblock %}

这里是官方提供的自定义的方法,较为清晰

{% load i18n %}
<div class="pagination">{% if page_obj.has_previous %}<a href="?{{ page_obj.previous_page_number.querystring }}" class="prev">&lsaquo;&lsaquo; {% trans "previous" %}</a>{% else %}<span class="disabled prev">&lsaquo;&lsaquo; {% trans "previous" %}</span>{% endif %}{% for page in page_obj.pages %}{% if page %}{% ifequal page page_obj.number %}<span class="current page">{{ page }}</span>{% else %}<a href="?{{ page.querystring }}" class="page">{{ page }}</a>{% endifequal %}{% else %}...{% endif %}{% endfor %}{% if page_obj.has_next %}<a href="?{{ page_obj.next_page_number.querystring }}" class="next">{% trans "next" %} &rsaquo;&rsaquo;</a>{% else %}<span class="disabled next">{% trans "next" %} &rsaquo;&rsaquo;</span>{% endif %}
</div>

实例

views.py

将要分页的对象创建分页对象传递给前端

        try:page = request.GET.get('page', 1)except PageNotAnInteger:page = 1p = Paginator(all_orgs, 5, request=request)orgs = p.page(page)return render(request, "org-list.html", {"all_orgs": orgs,})

org-list.html

前端对 分页数据进行渲染成分页器

具体怎么用参考以下

<div class="pageturn"><ul class="pagelist">{% if all_orgs.has_previous %}<li class="long"><a href="?{{ all_orgs.previous_page_number.querystring }}">上一页</a></li>{% endif %}{% for page in all_orgs.pages %}{% if page %}{% ifequal page all_orgs.number %}<li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li>{% else %}<li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li>{% endifequal %}{% else %}<li class="none"><a href="">...</a></li>{% endif %}{% endfor %}{% if all_orgs.has_next %}<li class="long"><a href="?{{ all_orgs.next_page_number.querystring }}">下一页</a></li>{% endif %}</ul>
</div>

具体实现效果

转载于:https://www.cnblogs.com/shijieli/p/10550215.html

django-pure-pagination 组件使用相关推荐

  1. Django框架(二十)—— Django rest_framework-认证组件

    Django rest_framework-认证组件 一.什么是认证 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件 ...

  2. 转载:Django之Form组件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 + View C ...

  3. Django之Form组件介绍

    --------------------------------------前言------------------------------------ 在进入正题之前,想多说两句; 当我们开始学习一 ...

  4. Django的form组件提交时错误不显示或无法提交

    出现的问题:在学习django的form组件时,对不符合form组件定义的字段无法提交,进而导致无法显示出自定义的错误信息.(因为无法提交就代表着数据没有传给后台,然后你的错误回显是在后台对数据的检验 ...

  5. Django之Form组件

    一.Form组件介绍 1.Form组件可以做的几件事情 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交的正确信息 4.如果其中有一个错误了,其他的正确这,保留上次输入的内容 5.自动创建 ...

  6. Django框架-Form组件

    一.DjangoForm组件介绍 我们之前在html页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校 ...

  7. Django之form组件!

     一.手动实现注册功能 注册功能1.渲染前端标签获取用户输入 >>> 渲染标签2.获取用户输入传递到后端校验 >>> 校验数据3.校验未通过展示错误信息 >& ...

  8. Django之内置组件

    Django组件介绍       分页器的使用       Form       modelForm       orm       cookie和session       中间件       信号 ...

  9. Django中Form组件的使用

    Form介绍 HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入 ...

  10. Django之form组件加cookie,session

    ---恢复内容开始--- 多对表的三种创建 一全自动(推荐使用) 优点:不需要手动创建第三张表也就是我们之前一直用的,靠那个不会在数据库中显示的虚拟字段,告诉orm帮我们创建能够表示多对多关系的第三张 ...

最新文章

  1. php mysql找不到文件,php – 在MySQL中找不到outfile创建的文件
  2. 复地集团的现代化办公方案
  3. TCP滑动窗口(发送窗口和接受窗口)
  4. 视频回顾 | 微信生态数字化运营进阶课大全!
  5. THE QUESTIONS :The Top 25 (what we don't know?)
  6. log4j2分层输出日志
  7. Requests库实战(二)---破解百度翻译
  8. 在Ubuntu上安装misterhouse
  9. MySQL语法中有哪些可以利用的漏洞?
  10. SQL Server插入binary类型的数据
  11. CMake 入门实战 | HaHack
  12. 服务器上怎么查询ubuntu版本信息失败,Ubuntu安装包信息如何查看
  13. 【交通标志识别】基于matlab GUI矩匹配算法路标识别【含Matlab源码 1175期】
  14. 【C语言】%e,用科学计数法输出
  15. [转]在VC中彻底玩转Excel
  16. VMplayer创建虚拟机
  17. 智能优化算法课程设计
  18. 11年艺术学习“转投”数学,他出版首本TensorFlow中文教材,成为蚂蚁金服技术大军一员
  19. Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?
  20. Java后端开发需要掌握什么

热门文章

  1. 【剑道】用语中日对照
  2. 关于SQLServer2000中触发器的使用——多行数据提交
  3. 【Spring源码】Spring中的AOP底层原理分析
  4. 基于Springboot实现园区招商管理系统
  5. Java基础语法纯小白入门
  6. java多态性补充-instanceof关键字
  7. 机器学习基础专题:主成分分析技术PCA
  8. windows版influxDB安装与配置
  9. PL/SQL Developer 导出表结构和表数据
  10. php7安装event拓展