分页
先导入模块
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
分页对象
user = UserInof.objects.all()
p = Paginator(user,2) #2表示每页显示2条数据
分页对象的属性和方法
p.conut 数据总数
p.num_pages 数据页数
p.page_range 分页后页码列表
p.page().has_next() 是否有下一页
p.page().has_previous() 是否有上一页
p.page().has_other_page() 是否有其他页
p.page().next_page_number() 下一页的页码
p.page().previous_page_number() 上一页的页码
view.py
def index(request):
user = UserInof.objects.all()
p = Paginator(user,2)
get_page = int(request.GET.get('page',1))
try:
user =p.page(get_page)
except PageNotAnInteger:
user = p.page(1)
except EmptyPage:
user = p.page(p.num_pages)
return render(request,'web/index.html',locals())
index.html
<ul>
{% for foo in user %}
<li>{{ foo.user }}</li>
<li>{{ foo.passwd }}</li>
{% endfor %}
</ul>
{% if user.has_previous %}
<a href="/index?page={{ user.previous_page_number }}">上一页</a>
{% endif %}
{% for list in p.page_range %}
{% if list == user.number %}
{{ list }}
{% else %}
<a href="/index?page={{ list }}">{{ list }}</a>
{% endif %}
{% endfor %}
{% if user.has_next %}
<a href="/index?page={{ user.next_page_number }}">下一页</a>
{% endif %}