13_优化分页展示

优化分页展示

paginator = Paginator(blogs_all_list,2)    # 每10篇进行分页

之前是每10篇分一次页,如果页数特别多的话就不好看了

1、优化分页展示

blog_list.html

{# 全部页码 #}
{% for page_num in page_of_blogs.paginator.page_range %}
    {% if page_num == page_of_blogs.number %}
        <li class="active"><span>{{ page_num }}</span></li>
    {% else %}
        <li><a href="?page={{ page_num }}">{{ page_num }}</a></li>
    {% endif %}
{% endfor %}

这样就有高亮了

那页数有点多,我们不需要全部显示

views.py

currentr_page_num = page_of_blogs.number    # 获取当前页码
page_range = [currentr_page_num - 2, currentr_page_num - 1, currentr_page_num, currentr_page_num + 1, currentr_page_num + 2]


context['page_range'] = page_range

blog_list.html

{# 全部页码 #}
{% for page_num in page_range %}

这样就只有5页了。但是0页是不存在的,我们要限制一下

views.py

# 获取当前页面前后各两页的范围
page_range = list(range(max(currentr_page_num - 2, 1), currentr_page_num)) + \
             list(range(currentr_page_num,min(currentr_page_num + 2,paginator.num_pages) + 1))
# 加上省略页码标记
if page_range[0] - 1 >= 2:
    page_range.insert(0,'...')
if paginator.num_pages - page_range[-1] >= 2:
    page_range.append('...')
# 加上首页和尾页
if page_range[0] != 1:
    page_range.insert(0, 1)
if page_range[-1] != paginator.num_pages:
    page_range.append(paginator.num_pages)

但是现在...是可以点的,我们再优化一下

{% if page_num == '...' %}
    <li><span>{{ page_num }}</span></li>
{% else %}
    <li><a href="?page={{ page_num }}">{{ page_num }}</a></li>
{% endif %}

2、settings自定义设置

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值