博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stark组件之分页【模仿Django的admin】
阅读量:6207 次
发布时间:2019-06-21

本文共 3837 字,大约阅读时间需要 12 分钟。

我们的stark组件用的我们的分页组件,没有重新写

 

 

 

下面直接看下分页的代码

class page_helper():    def __init__(self, count, current_page, per_page_num, base_url,parms):        self.count = count        self.current_page = current_page        self.per_page_num = per_page_num        self.base_url = base_url        self.page_head = "
" import copy parms = copy.deepcopy(parms) parms._mutable = True self.parms = parms def page_count(self): before, after = divmod(self.count, self.per_page_num) if after > 0: class_count = before + 1 else: class_count = before print("-------------",class_count,self.count,self.per_page_num) return class_count def page_start(self): if self.page_count() <= 11: start_int = 1 end_int = self.page_count() else: if self.current_page <= 6: start_int = 1 end_int = 11 elif self.current_page + 5 + 1 > self.page_count(): start_int = self.page_count() - 10 end_int = self.page_count() + 1 else: start_int = self.current_page - 5 end_int = self.current_page + 5 + 1 return start_int def page_end(self): if self.page_count() <= 11: start_int = 1 end_int = self.page_count() else: if self.current_page <= 6: start_int = 1 end_int = 11 elif self.current_page + 5 + 1 > self.page_count(): start_int = self.page_count() - 10 end_int = self.page_count() + 1 else: start_int = self.current_page - 5 end_int = self.current_page + 5 + 1 return end_int def db_start(self): return (self.current_page - 1) * self.per_page_num + 1 def db_end(self): return self.current_page * self.per_page_num + 1 def page_list(self): print(self.parms,dir(self.parms),"======================",self.parms.urlencode()) if self.current_page == 1: before_page = "
  • " else: self.parms["p"] = self.current_page - 1 before_page = "
  • ".format(url=self.base_url, args=self.parms.urlencode()) page_list = [] page_list.append(before_page) for i in range(self.page_start(), self.page_end() + 1): self.parms["p"] = i if i == self.current_page: s = """
  • {num}
  • """.format(url=self.base_url, args=self.parms.urlencode(),num=self.parms["p"]) else: s = """
  • {num}
  • """.format(url=self.base_url, args=self.parms.urlencode(),num=self.parms["p"]) page_list.append(s) if self.current_page == self.page_count(): after_page = """
  • """ else: self.parms["p"] = self.current_page + 1 after_page = """
  • """.format(url=self.base_url, args=self.parms.urlencode()) page_list.append(after_page) page_body = "".join(page_list) page_str = self.page_head + page_body + self.page_tail return page_str

      

     

    分页的代码在什么实用用呢?应该list_url这个函数把过滤和搜索后的数据传递个showlist这个类,然后这个类在根据这些要显示的数据在进行分页

    class Showlist(object):    def __init__(self,config,request,new_list,new_data_list):        self.config = config        self.request = request        self.new_list = new_list        self.new_data_list = new_data_list        # 分页显示        count = self.new_data_list.count()        current_page = int(request.GET.get("p",1))        per_page_num = 3        base_url = request.path_info        parms = request.GET        self.page_str = page.page_helper(count=count,current_page=current_page,per_page_num=per_page_num,base_url=base_url,parms=parms)

      

     

     

    转载于:https://www.cnblogs.com/bainianminguo/p/10134955.html

    你可能感兴趣的文章
    mysql索引随记
    查看>>
    关于Pac-Man,你所要了解的 一切
    查看>>
    分布式配置管理平台Disconf
    查看>>
    pdf 字体和图片抽取
    查看>>
    Cisco Nexus 1000V
    查看>>
    我的友情链接
    查看>>
    [iOS Animation]-CALayer 性能优化实例
    查看>>
    CentOS多网卡重命名配置
    查看>>
    变态青蛙跳
    查看>>
    Git常用命令总结
    查看>>
    定时任务
    查看>>
    MyBatis之输入与输出(resultType、resultMap)映射
    查看>>
    剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
    查看>>
    51、YUM安装配置LAMP、phpMyAdmin实战
    查看>>
    Yeslab现任明教教主ISE课程前七部分免费发布
    查看>>
    linux下恢复误删文件
    查看>>
    Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...
    查看>>
    RAID的肤浅认识
    查看>>
    poxtfix+dovecot+saslauthd+courier-authlib +mysql + extmail 完整虚拟邮箱系统部署
    查看>>
    Erlang并发机制 –进程调度
    查看>>