Django 分页

来源:互联网 发布:我知女人心南宫寒版 编辑:程序博客网 时间:2024/05/21 18:32

Django的分页实在是太方便了,哈哈哈,直接上代码,你一看就会了

#views.pydef blogindex_html(request):    from django.core.paginator import Paginator    from django.core.paginator import EmptyPage    from django.core.paginator import PageNotAnInteger    limit = 10  # 每页显示的记录条数    question = Question.objects.all().order_by('-question_date')    paginator = Paginator(question,limit)#实例化一个分页对象    page = request.GET.get('page') #获取到页码    try:        q = paginator.page(page) #获取某夜对应的记录    except PageNotAnInteger: #如果页码不是个整数        q = paginator.page(1)#取第一页的记录    except EmptyPage:#如果页码太大        q = paginator.page(paginator.num_pages)#取最后一页的记录    return render(request,'blogindex.html',{'q':q })
#前端<table class="table table-inbox table-hover"><tbody>{% for i in q.object_list %}    <tr class="unread">        <td class="inbox-small-cells">        <input type="checkbox" class="mail-checkbox">        </td>        <td class="inbox-small-cells"><i class="icon-star"></i></td>        <td class="view-message  dont-show">{{ i.question_author }}</td>        <td class="view-message ">{{ i.question_title }}</td>        <td class="view-message  inbox-small-cells">{{ i.question_category }}</i></td>        <td class="view-message  text-right">{{ i.question_date }}</td>    </tr>{% endfor %}</tbody></table><div style="float:right"><p>{# q.paginator.page_range 这个函数返回包含一个所有页码的range对象,也就是说 range(1, q.paginator.num_pages + 1) #}    {% for page_number in q.paginator.page_range %}        {% ifequal page_number q.number %}            <button type="button" class="btn btn-primary btn-sm active"> {{ page_number }} </button>        {% else %}            <a href="?page={{ page_number }}"> <button type="button" class="btn btn-default btn-sm">{{ page_number }} </button></a>        {% endifequal %}    {% endfor %}</p></div>

这里写图片描述

关于分页的官方内容:http://python.usyiyi.cn/translate/django_182/topics/pagination.html

还有另一种分页的显示方式感觉太难看了就不写了,想看的话到这里面去看:https://mozillazg.github.io/2013/01/django-pagination-by-use-paginator.html