web.py 中的分页设计

2021-02-10 05:20

阅读:568

标签:exp   next   self   lis   ota   自定义   url   off   pre   

1、定义分页类

class Pagination(object):
    ‘‘‘
        分页类
        参数:
            per_page:每页数量
            total_data:总数目
            cur_page:当前页。
        用法:(flask,html中自定义css)
            py:
                page = int(request.args.get("page",1))  #获取args参数‘page‘
                per_page = 50   #每页的数量
                dsubAll = query_db("SELECT COUNT(id) AS C FROM dsub",one=True)["C"] #总数目
                pages = Pagination(cur_page=page,per_page=per_page,total_data=dsubAll)  #分页类
                dsub = query_db("SELECT * FROM dsub LIMIT ?,?",(pages.offset,pages.limit))  #取offset与limit进行分页
            html:
                
{{ pages.get_html() | safe }}
‘‘‘ def __init__(self,per_page=20,total_data=20,cur_page=1): import math self.size = per_page self.data_count = total_data self.page_current = int(cur_page) self.page_max = int(math.ceil(self.data_count * 0.1 * 10 / self.size )) self.page_current = 1 if self.page_current self.page_max else self.page_current self.offset = ( self.page_current - 1) * self.size self.limit = self.size #判断url中是否有其他参数,以及是否已有page参数 _fullpath = web.ctx.fullpath if "?" in _fullpath: if "page" in _fullpath: self.url = _fullpath.split("page")[0] else: self.url = "{}&".format(_fullpath) else: self.url = "{}?".format(_fullpath) def get_html(self): self.page_pre = self.page_current - 1 self.page_next = self.page_current + 1 if self.page_max in (0,1) : html = ‘‘‘
  • 首页
  • 上一页
  • 下一页
  • 尾页
‘‘‘ elif self.page_current
  • 首页
  • 上一页
  • 下一页
  • 尾页
  • ‘‘‘.format(self=self) elif self.page_current >= self.page_max: html = ‘‘‘
    • 首页
    • 上一页
    • 下一页
    • 尾页
    ‘‘‘.format(self=self) else: html = ‘‘‘
    • 首页
    • 上一页
    • 下一页
    • 尾页
    ‘‘‘.format(self=self) banner = ‘‘‘
    • {self.page_current}
    • {self.page_max}
    ‘‘‘.format(self=self) html = ‘‘.format(html + banner) if self.data_count > self.size: return html else: return ""

    2、用法

            i = web.input()
            page = i.get("page",1)
    
            pageSize = 20
            notifyAll = len(list(db.select("team_notify",where="status=‘doing‘")))
            notifyPage = conf.Pagination(pageSize,notifyAll,page)
    
            notifies = db.select("team_notify",where="status=‘doing‘",order="expressTime DESC",limit=pageSize,offset=notifyPage.offset)
    

    3、效果
    技术图片

    技术图片

    web.py 中的分页设计

    标签:exp   next   self   lis   ota   自定义   url   off   pre   

    原文地址:https://www.cnblogs.com/daivlin/p/13053094.html


    评论


    亲,登录后才可以留言!