分页

 

1.分页代码

__author__ = 'Administrator'
from django.utils.safestring import mark_safe

class Page:
    def __init__(self, current_page, data_conut, per_page_count=20, pager_num=7):
        self.current_page = current_page
        self.data_conut = data_conut
        self.per_page_count = per_page_count
        self.pager_num = pager_num

    @property
    def start(self):
        return (self.current_page - 1) * self.per_page_count

    @property
    def end(self):
        return self.current_page * self.per_page_count

    def total_count(self):
        total_count, y = divmod(self.data_conut, self.per_page_count)
        if y:
            total_count += 1
        return total_count

    def pag_str(self, base_url):
        page_list = []
        if self.total_count() < self.pager_num:
            star_index = 1
            end_index = self.total_count() + 1
        else:
            if self.current_page <= (self.pager_num + 1) / 2:
                star_index = 1
                end_index = self.pager_num
            else:
                star_index = self.current_page - (self.pager_num - 1) / 2
                end_index = self.current_page + (self.pager_num + 1) / 2
                if self.current_page + (self.pager_num - 1) / 2 > self.total_count():
                    end_index = self.total_count() + 1
                    star_index = self.total_count() - self.pager_num + 1

        if self.current_page == 1:
            prev = '<a class="page active" href="#">上一页</a>'
        else:
            prev = '<a class="page active" href="%s?p=%s">上一页</a>' % (base_url, self.current_page - 1)
        page_list.append(prev)
        for i in range(int(star_index), int(end_index)):
            if i == self.current_page:
                temp = '<a class="page active" href="%s?p=%s">%s</a>' % (base_url, i, i)
            else:
                temp = '<a class="page" href="%s?p=%s">%s</a>' % (base_url, i, i)

            page_list.append(temp)
        if self.current_page == self.total_count():
            next = '<a class="page active" href="javascript:void(0);">下一页</a>'
        else:
            next = '<a class="page active" href="%s?p=%s">下一页</a>' % (base_url, self.current_page + 1)
        page_list.append(next)

        jump = '''
           <input tpye="text"/><a οnclick='jumpTo(this, "?p=");' id='ii1'>GO</a>
               <script>
                   function jumpTo(ths,base){
                       var val = ths.previousSibling.value;
                       location.href = base + val;
                   }
               </script>
           '''
        page_list.append(jump)
        page_str = ''.join(page_list)
        page_str = mark_safe(page_str)
        return page_str

 2.应用分页

def fenye(request):
    current_page = request.GET.get('p',1)
    current_page = int(current_page)
    page_obj = pagination.Page(current_page,len(LIST))
    data = LIST[page_obj.start:page_obj.end]
    page_str=page_obj.pag_str('/app03/fenye/')
    return render(request,'app03/fenye.html',{'li':data,'page_str':page_str})

 

转载于:https://www.cnblogs.com/caoqh/p/10711745.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值