【Python】自定义分页

 Django内置了分页设置,但不够灵活,需要我们自定义分页。

下面代码考虑了利用bootstrap分页组件来实现页面美化,如果不想使用,可以不调用url_format_by_bootstrap函数,即可实现普通分页。

具体的参数和代码均有注释

#! python3
# @Project:  mysite2 - pager.py
# @Info   :  自定义分页操作
import re


class PageInfo:
    """
        :param current_page 当前页码
        :param data 要分页的数据
        :param path 路由地址(用于生成动态路径)
        :param per_page 每页显示条数
        :param show_page 显示页码跨度
    """

    def __init__(self, current_page, data, path, per_page=10, show_page=10):
        self.current_page = current_page
        self.per_page = per_page
        self.show_page = show_page
        self.data = data
        self.path = path
        self.all_page = self.get_all_page()

    def get_all_page(self):
        """计算总页数"""
        result, mod = divmod(len(self.data), self.per_page)
        if mod:
            return result + 1
        else:
            return result

    def create_page(self):
        """创建页码列表"""
        if not (isinstance(self.show_page, int) | self.show_page < 1):
            self.show_page = 10

        half = self.show_page // 2
        start = self
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值