自定义分页器

class PageInfo:
    def __init__(self, num_page, total, uri, pei_page=10, show_page=11):
        if num_page.isdigit():
            num_page = int(num_page)
        else:
            num_page = 1
        self.num_page = num_page
        self.pei_page = pei_page
        self.show_page = show_page
        self.uri = uri
        a, b = divmod(total, pei_page)
        self.total_page = a
        if b:
            self.total_page += 1

    def get_start(self):
        return (self.num_page - 1) * 10

    def get_stop(self):
        return self.num_page * 10

    def page(self):
        args = []
        if self.num_page - (self.show_page // 2) < 1:
            start = 1
            end = self.show_page + 1
        elif self.num_page + (self.show_page // 2) > self.total_page:
            start = self.total_page - self.show_page
            end = self.total_page + 1
        else:
            start = self.num_page - (self.show_page // 2)
            end = self.num_page + (self.show_page // 2) + 1
            print(end)
        if self.num_page - 1 > 0:
            s = "<li><a href='/%s%s'>上一页</a></li>" % (self.uri, self.num_page - 1)
        else:
            s = "<li class='disabled'><a href='#' >上一页</a></li>"
        args.append(s)
        for i in range(start, end):
            if i == self.num_page:
                s = "<li class='active'><a href='/%s%s'>%s </a></li>" % (self.uri, i, i)
            else:
                s = "<li><a href='/%s%s'>%s </a></li>" % (self.uri, i, i)
            args.append(s)
        if self.num_page + 1 > self.total_page:
            s = "<li class='disabled'><a href='#' >下一页</a></li>"
        else:
            s = "<li><a href='/%s%s' >下一页</a></li>" % (self.uri, self.num_page + 1)
        args.append(s)
        return "".join(args)

 

转载于:https://www.cnblogs.com/jixu/p/11371880.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值