美文网首页
分页(一)利用自带的分页

分页(一)利用自带的分页

作者: 两点半的杂货铺 | 来源:发表于2018-03-14 19:30 被阅读8次
image.png

一、页面展示页码-自定义页码函数

我在工具包文件写,写了一个继承函数

  • 首先我们给知道当前用户点击的页数

  • 知道我们设置底栏展示页数

#保证循环的次数在规定的展示栏个数,如果设置11,循环的次数保证在11次
class CustomPaginator(Paginator):
    def __init__(self,  current_page, per_pager_num,*args, **kwargs):
        '''
        :param current_page:  当前页
        :param per_pager_num: 底边栏展示页数
        '''
        self.current_page = int(current_page)
        self.per_pager_num = int(per_pager_num)
        super(CustomPaginator, self).__init__(*args, **kwargs)

    def page_num_range(self):
  #总页数小于实际展示页
        if self.num_pages < self.per_pager_num:
            return range(1,self.num_pages+1)

        #part 当前总展示栏中间点5
        part = int(self.per_pager_num//2)

        #最小页数为1防止出现负数情况
        if self.current_page <= part:
            return range(1,self.per_pager_num+1)

        #最大页数为实际总页数
        if(self.current_page+part)>self.num_pages:
            return range(self.num_pages-self.per_pager_num+1,self.num_pages+1)

        
        return range(self.current_page-part,self.current_page+part+1)

view 页面案例

对着里的异常持怀疑态度,提醒自己后期不论什么错误都第一页,设计一个抓全部异常

def index1(request):
    from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

    current_page = request.GET.get('page')
    paginator = Paginator(USER_LIST,10)
    # per_page: 每页显示条目数量
    # count:    数据总个数
    # num_pages:总页数
    # page_range:总页数的索引范围,如: (1,10),(1,200)
    # page:     page对象(是否具有上一页,下一页)
    try:
        posts = CustomPaginator.page(current_page)
        # has_next              是否有下一页
        # next_page_number      下一页页码
        # has_previous          是否有上一页
        # previous_page_number  上一页页码
        # object_list           分页之后的数据列表
        # number                当前页
        # paginator             paginator对象
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)
    except PageNotAnInteger:
        posts = paginator.page(1)

    return render(request,'index1.html',{'posts':posts})
  • html

这里想展示选择页更改样式,遵守选中页==循环页 是现实就好

相关文章

网友评论

      本文标题:分页(一)利用自带的分页

      本文链接:https://www.haomeiwen.com/subject/jkpyfftx.html