在Django当中已经帮我们完成了关于分页的方式
可以看原文档
https://github.com/jamespacileo/django-pure-pagination
我们需要先下载django-pure-pagination
直接用pip install django-pure-pagination

配置

在我们的Django配置文档当中的INSTALLED_APPS加入

INSTALLED_APPS = [
  'pure_pagination',
]

在进行配置详细数据

PAGINATION_SETTINGS = {
    'PAGE_RANGE_DISPLAYED':10,
    'MARGIN_PAGES_DISPLAYED':2,
    'SHOW_FIRST_PAGE_WHEN_INVALID':True
}

PAGE_RANGE_DISPLAYED:显示相邻的数据这里设置的是10个
MARGIN_PAGES_DISPLAYED:显示头尾的几个数据这里是两个
SHOW_FIRST_PAGE_WHEN_INVALID:当你访问网页不想出现404页面,就可以将他设置成True

完成分页(后台)

    try:
        #这里可以获取那一页的数据
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1
    #这里需要传入一个对象,来查看数据量
    p = Paginator(objects, per_page=5,request=request)#这里的per_page是设置的显示数据量
    
    people = p.page(page)
    #将数据给到前台
    return render_to_response('index.html', {
        'people': people,
    }

完成分页(前台)

可以直接用它帮我们写好的方式
{{ people.render }}
people是后台传过来的数据
我们也可以使用自己的样式

{% if people.has_previous %}
{#      在这里可以用自己的样式来进行替换#}
        <a href="?{{ people.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 people.pages %}
        {% if page %}
            {% ifequal page people.number %}
                 {#显示当前被选中的页面#}
                <span class="current page">{{ page }}</span>
            {% else %}
                {#这里是没有选中时如何显示#}
                <a href="?{{ page.querystring }}" class="page">{{ page }}</a>
            {% endifequal %}
        {% else %}
         {#显示省略号#}
            ...
        {% endif %}
    {% endfor %}
    {% if people.has_next %}
        {#显示下一页#}
        <a href="?{{ people.next_page_number.querystring }}" class="next">{% trans "next" %} &rsaquo;&rsaquo;</a>
    {% else %}
        {#当没有下一页该如何显示#}
        <span class="disabled next">{% trans "next" %} &rsaquo;&rsaquo;</span>
    {% endif %}
posted on 2022-08-29 10:54  一纸荒年003  阅读(86)  评论(0)    收藏  举报