zoukankan      html  css  js  c++  java
  • 分页方法需要参数(当前页数,总数据量,拿到query的值)




    class Pagination:
    def __init__(self, page_num, all_count ,params=None,per_num=10,max_show=11):
    """
    :param page_num: 当前的页码数
    :param all_count: 总数据量
    :param per_num: 每页显示的数据条数
    :param max_show: 最大显示页码数
    :param self.total_page_num: 总页码数
    :param self.page_start: 起始页码数
    :param self.page_end: 终止页码数

    """
    try:
    page_num = int(page_num)
    if page_num <=0:
    page_num = 1
    except Exception as e:
    page_num = 1
    self.parmas = params if params else QueryDict(mutable=True)
    self.page_num = page_num
    self.all_count = all_count
    self.per_num = per_num
    total_page_num, more = divmod(all_count,per_num)
    if more:
    total_page_num+=1
    half_show = max_show//2
    # 总页码数不足以满足最大页码数
    if total_page_num < max_show:
    page_start = 1
    page_end = total_page_num
    else:
    if page_num-half_show<=0:
    page_start =1
    page_end = max_show
    elif page_num+half_show>total_page_num:
    page_start = total_page_num-max_show+1
    page_end = total_page_num
    else:
    page_start = page_num - half_show
    page_end = page_num + half_show
    self.page_start=page_start
    self.page_end=page_end
    self.total_page_num = total_page_num
    print(self.parmas.urlencode())
    @property
    def page_html(self):
    page_list = []
    if self.page_num == 1:
    page_list.append('<li class="disabled"><a ><span>&laquo;</span></a></li>')
    else:
    self.parmas['page'] = self.page_num - 1
    print(self.parmas.urlencode())
    page_list.append('<li><a href="?{}" ><span>&laquo;</span></a></li>'.format(self.parmas.urlencode()))
    for i in range(self.page_start,self.page_end + 1):
    self.parmas['page'] = i
    if i == self.page_num:
    page_list.append('<li class="active"><a href="?{}">{}</a></li>'.format(self.parmas.urlencode(), i))
    else:
    page_list.append('<li><a href="?{}">{}</a></li>'.format(self.parmas.urlencode(), i))

    if self.page_num == self.total_page_num:
    page_list.append('<li class="disabled"><a><span>&raquo;</span></a></li>')
    else:
    self.parmas['page'] = self.page_num + 1
    page_list.append('<li><a href="?{}" ><span>&raquo;</span></a></li>'.format(self.parmas.urlencode()))

    return ''.join(page_list)
    @property
    def start(self):
    return (self.page_num - 1)* self.per_num

    @property
    def end(self):
    return self.page_num * self.per_num


  • 相关阅读:
    brew
    hbase
    YARN常见问题以及解决方案
    mybatis中foreach collection三种用法
    mysql按分隔符输出多行
    mysql DATETIME
    iis 之给网站添加MIME映射
    VS2019专业版和企业版激活密钥
    ViewData对于从后台传list到前台的使用
    找出每组数据中不同distinct
  • 原文地址:https://www.cnblogs.com/huhuxixi/p/10759232.html
Copyright © 2011-2022 走看看