在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})