Django(六)用django自带Paginator实现分页功能

在django中使用Paginator可以很方便的实现分页功能,下面就通过一个具体的例子来讲讲如何使用Paginator。

在view.py中使用Paginator

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from app.models import Topic

def index(request):
limit = 3  # 每页显示的记录数
topics = Topic.objects.all()
paginator = Paginator(topics, limit)  # 实例化一个分页对象

page = request.GET.get('page')  # 获取页码
try:
    topics = paginator.page(page)  # 获取某页对应的记录
except PageNotAnInteger:  # 如果页码不是个整数
    topics = paginator.page(1)  # 取第一页的记录
    except EmptyPage:  # 如果页码太大,没有相应的记录
        topics = paginator.page(paginator.num_pages)  # 取最后一页的记录

    return render_to_response('index.html', {'topics': topics})

模板中的相关操作

效果:


热评文章