django学习——用django-pure-pagination进行分页

来源:互联网 发布:超级直播软件apk 编辑:程序博客网 时间:2024/05/16 02:07

源代码:https://github.com/jamespacileo/django-pure-pagination

1、安装

pip install django-pure-pagination

2、设置
在setting.py中设置:

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

用于展示底部分页栏中数量的显示,可以对其进行更改尝试不同效果。

3、视图函数

try:    page = request.GET.get('page', 1)except PageNotAnInteger:    page = 1p = Paginator(all_orgs, 5, request=request)orgs = p.page(page)

其中all_orgs为从数据库中得到内容,orgs为需要传到html中的内容。

4、前端展示

在for循环时,需要在orgs后多加个object_list:

{% for org in orgs.object_list %}{% endfor %}
<!--分页展示-->{% 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 %}

将该文本粘贴到分页处即可,对于不同的数据内容,改下all_orgs即可。

最终效果如图:

这里写图片描述

原创粉丝点击