代码改变世界

django 分页django-pure-pagination(zz)

2017-09-30 09:36  很大很老实  阅读(526)  评论(0编辑  收藏  举报

虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination

github地址https://github.com/jamespacileo/django-pure-pagination.git

里面有教程,这里简要的说明一下

第一步下载

两种方式

一pip安装pip install django-pure-pagination

二源码安装git clone https://github.com/jamespacileo/django-pure-pagination.git

cd django-pure-pagination

python setup.py install

两者选其一

第二步使用

在settings中添加

INSTALLED_APPS = (
    ...
    'pure_pagination',
)
PAGINATION_SETTINGS = {
    'PAGE_RANGE_DISPLAYED': 10,
    'MARGIN_PAGES_DISPLAYED': 2,

    'SHOW_FIRST_PAGE_WHEN_INVALID': True,
}

 

views:

# views.py
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(objects, request=request)

    people = p.page(page)

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

 

html:

{# 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 %}