应用名/views.py(视图,分页,Paginator,Page):
from django.shortcuts import render
from booktest.models import AreaInfo
from django.core.paginator import Paginator # 导入Paginator类
# 定义视图函数。 分页 pindex表示第几页
def show_area(request, pindex):
# 1.查询出所有省级地区的信息
areas = AreaInfo.objects.filter(aParent__isnull=True)
# 2. 分页,每页显示10条
paginator = Paginator(areas, 10) # 每页显示10条数据。
print(paginator.num_pages) # 4 总页数
print(paginator.page_range) # [1, 2, 3, 4] 页码的列表。
# pindex表示第几页。
if pindex == '':
# 默认取第一页的内容
pindex = 1
else:
pindex = int(pindex)
# page是Page类的实例对象,Page类有三个属性(number:页码。object_list:结果的查询集,可遍历。paginator:对应的Paginator类对象)。
page = paginator.page(pindex) # 返回第pindex页的内容。
return render(request, '应用名/show_area.html', {'page':page})