文章列表页分页器Paginator使用方法
views.py
def artlist(request, tail):
if request.method == 'GET':
art_list = Art_List.objects.get(art_list_tail=tail)
arts = art_list.art_set.all()
# 侧边栏
tags = Side.side_tags
new_arts = Side.side_new_arts
hot_arts = Side.side_hot_arts
# 分页:http://www.pyqt5.cn/blog/?page=2
paginator = Paginator(arts, 2)
page_num = request.GET.get('page', 1)
page = paginator.get_page(page_num)
context = {'art_list': art_list, 'arts': arts, 'tags': tags, 'new_arts': new_arts, 'hot_arts': hot_arts, 'page': page}
return render(request, 'art-list.html', context=context)
art-list.html
<!-- 技术笔记 开始 -->
<div class="main">
<div class="content">
<ul>
{% for art in page.object_list %}
<li class="note clearfix">
<a href="/art-{{ art.art_tail }}.html" class="img fl">
<img src="/media/{{ art.art_img }}" alt="{{ art.art_title }}">
</a>
<div class="note_text fr">
<div class="title">
<a href="/artlist-{{ art.art_top_list.art_list_tail }}/" class="lanmu" title="{{ art.art_top_list.art_list_short_title }}"><i></i>{{ art.art_top_list.art_list_short_title }}</a>
<h3 class="">
<a href="/art-{{ art.art_tail }}.html" title="{{ art.art_title }}">{{ art.art_title }}</a>
</h3>
</div>
<div class="icons">
<span><i class="iconfont icon-zuozhe"></i>{{ art.art_author }}</span>
<span><i class="iconfont icon-time"></i>{{ art.art_time }}</span>
<span><i class="iconfont icon-dianji"></i>{{ art.art_click }}</span>
</div>
<p>{{ art.art_description }}</p>
</div>
</li>
{% endfor %}
</ul>
</div>
<!-- page页 开始 -->
<div class="mainbar">
<div class="pagemain">
<div class="pagebar">
<div class="page">
<a href="/artlist-{{ art_list.art_list_title }}/">首页</a>
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">上一页</a>
{% endif %}
{% for page_num in page.paginator.page_range %}
{% if page.number == page_num %}
<b>{{ page_num }}</b>
{% else %}
<a href="?page={{ page_num }}">{{ page_num }}</a>
{% endif %}
{% endfor %}
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">下一页</a>
{% endif %}
<span>共{{ page.paginator.num_pages }}页</span>
</div>
</div>
</div>
</div>
<!-- page页 结束 -->