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_response

from pure_pagination import Paginator, EmptyPage, PageNotAnInteger

def index(request):

    try:
page = request.GET.get('page', 1)
except PageNotAnInteger:
page = 1 objects = ['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 = 1
p = 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>

具体实现效果

django-pure-pagination 组件使用的更多相关文章

  1. Django----列表分页(使用Django的分页组件)

    目的:是为了实现列表分页 1.定制URL http://127.0.0.1:8000/blog/get_article?page=3之前定制URL是在url后增加了/id,这次使用参数的方式 def ...

  2. Django之Form组件

    Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户 ...

  3. Python之路【第二十一篇】:Django之Form组件

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

  4. 第十一篇:web之Django之Form组件

    Django之Form组件   Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功 ...

  5. angular4 中自定义pagination组件

    你用Angular 吗? 一.介绍 一个基于angular4 开发的可以分页的组件.组件的好处就是可以复用,复用.....作为一个前端码农,开始的分页功能实现是我用jquery写的,其他同事用的时候都 ...

  6. python Django之Form组件

    python Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试 ...

  7. Django之ContentType组件

    一.理想表结构设计 1.初始构建 1. 场景刚过去的双12,很多电商平台都会对他们的商品进行打折促销活动的,那么我们如果要实现这样的一个场景,改如何设计我们的表? 2. 初始表设计 注释很重要,看看吧 ...

  8. django之forms组件

    在django中forms组件有其强大的功能,里面集合和众多的函数和方法:下面来看一下它的源码 """ Form classes """ f ...

  9. Django之Form组件(一)

    Django之Form组件(一) Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本操作:字 ...

  10. python框架之Django(10)-Form组件

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

随机推荐

  1. H5 34-背景图片

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. HDU - 1698 线段树区间修改,区间查询

    这就是很简单的基本的线段树的基本操作,区间修改,区间查询,对区间内部信息打上laze标记,然后维护即可. 我自己做的时候太傻逼了...把区间修改写错了,对给定区间进行修改的时候,mid取的是节点的左右 ...

  3. 百度统计微信网站绑定(vue项目)

    *网站域名:----- *网站首页:----/index.html 下列代码放入index.html vue加百度统计代码(亲测有效)

  4. 01-JavaScript介绍

    JavaScript价绍 1.引言 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) ...

  5. Ubuntu端口开放

    一.关于iptable的介绍 维基百科:https://zh.wikipedia.org/wiki/Iptables 注意:iptables的操作需要root权限 二.具体操作 sudo apt-ge ...

  6. 【Python3练习题 010】将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    #参考http://www.cnblogs.com/iderek/p/5959318.html n = num = int(input('请输入一个数字:'))  #用num保留初始值 f = []  ...

  7. webservice服务的提供及调用完整代码示例

    服务提供方: applicationContext.xml applicationContext-webService.xml  服务调用方:

  8. mysql关联、子查询索引优化

    1.驱动表:加索引不起作用,因为全表扫描.表1 left join 表2 ,此时表1是驱动表 被驱动表:给这个加索引.  关联查询  子查询时 尽量不使用not in 或者not exists 而是用 ...

  9. 用织梦建站如何去掉a这个目录,还有内容页的a

    1.另外建一个站点,将物理路径直接指向a即可. 2.去掉文章页生成的带a的路径: 只需要这一句话:  function='str_replace("/a","" ...

  10. JQ查找到带有某个字符,并起类名,然后替换这个某个字符

    <script> setTimeout("asdasd()",1000); //定时器是为了防止其他JS影响到它,可以不加 function asdasd() { $( ...