django-pure-pagination 组件使用
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">‹‹ {% trans "previous" %}</a>{% else %}<span class="disabled prev">‹‹ {% 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" %} ››</a>{% else %}<span class="disabled next">{% trans "next" %} ››</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 组件使用相关推荐
- Django框架(二十)—— Django rest_framework-认证组件
Django rest_framework-认证组件 一.什么是认证 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件 ...
- 转载:Django之Form组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 + View C ...
- Django之Form组件介绍
--------------------------------------前言------------------------------------ 在进入正题之前,想多说两句; 当我们开始学习一 ...
- Django的form组件提交时错误不显示或无法提交
出现的问题:在学习django的form组件时,对不符合form组件定义的字段无法提交,进而导致无法显示出自定义的错误信息.(因为无法提交就代表着数据没有传给后台,然后你的错误回显是在后台对数据的检验 ...
- Django之Form组件
一.Form组件介绍 1.Form组件可以做的几件事情 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交的正确信息 4.如果其中有一个错误了,其他的正确这,保留上次输入的内容 5.自动创建 ...
- Django框架-Form组件
一.DjangoForm组件介绍 我们之前在html页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校 ...
- Django之form组件!
一.手动实现注册功能 注册功能1.渲染前端标签获取用户输入 >>> 渲染标签2.获取用户输入传递到后端校验 >>> 校验数据3.校验未通过展示错误信息 >& ...
- Django之内置组件
Django组件介绍 分页器的使用 Form modelForm orm cookie和session 中间件 信号 ...
- Django中Form组件的使用
Form介绍 HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入 ...
- Django之form组件加cookie,session
---恢复内容开始--- 多对表的三种创建 一全自动(推荐使用) 优点:不需要手动创建第三张表也就是我们之前一直用的,靠那个不会在数据库中显示的虚拟字段,告诉orm帮我们创建能够表示多对多关系的第三张 ...
最新文章
- php mysql找不到文件,php – 在MySQL中找不到outfile创建的文件
- 复地集团的现代化办公方案
- TCP滑动窗口(发送窗口和接受窗口)
- 视频回顾 | 微信生态数字化运营进阶课大全!
- THE QUESTIONS :The Top 25 (what we don't know?)
- log4j2分层输出日志
- Requests库实战(二)---破解百度翻译
- 在Ubuntu上安装misterhouse
- MySQL语法中有哪些可以利用的漏洞?
- SQL Server插入binary类型的数据
- CMake 入门实战 | HaHack
- 服务器上怎么查询ubuntu版本信息失败,Ubuntu安装包信息如何查看
- 【交通标志识别】基于matlab GUI矩匹配算法路标识别【含Matlab源码 1175期】
- 【C语言】%e,用科学计数法输出
- [转]在VC中彻底玩转Excel
- VMplayer创建虚拟机
- 智能优化算法课程设计
- 11年艺术学习“转投”数学,他出版首本TensorFlow中文教材,成为蚂蚁金服技术大军一员
- Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?
- Java后端开发需要掌握什么