1 django 分页功能
app01/views.py Paginator模块的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
def users(request): from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger user_list = models.UserInfo.objects.all() paginator = Paginator(user_list,10) # paginator.per_page 每页显示条目数量 # paginator.count 数据总个数 # paginator.num_pages 总页数 # paginator.page_range 总页数的索引范围,如(1,10),(1,20) current_page = request.GET.get('p') try: page_obj=paginator.page(current_page) except EmptyPage as e: page_obj = paginator.page(1) except PageNotAnInteger as e: page_obj = paginator.page(1) # page_obj.has_next() 是否有下一页 # page_obj.next_page_number() 下一页页码 # page_obj.has_previous() 是否有上一页 # page_obj.previous_page_number() 上一页页码 # page_obj.object_list 分页之后的数据列表 # page_obj.number 当前页 # page_obj.paginator paginator对象
return render(request,"users.html", {'page_obj':page_obj})
|
templates/users.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
{% if page_obj.has_previous %} <a href="/users?p={{ page_obj.previous_page_number }}">上一页</a> {% else %} <a href="#">上一页</a> {% endif %}
{% for i in page_obj.paginator.page_range %} <a href="/users?p={{ i }}">{{ i }}</a> {% endfor %}
{% if page_obj.has_next %} <a href="/users?p={{ page_obj.next_page_number }}">下一页</a> {% else %} <a href="#">下一页</a> {% endif %} <span> <a>{{ page_obj.number }}/{{ page_obj.paginator.num_pages }}</a> </span> </div>
|
近期评论