博客
关于我
强烈建议你试试无所不能的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性能的检查和调优方法
    查看>>
    项目管理中的导向性
    查看>>
    Android WebView 学习
    查看>>
    (转)从给定的文本中,查找其中最长的重复子字符串的问题
    查看>>
    HDU 2159
    查看>>
    spring batch中用到的表
    查看>>
    资源文件夹res/raw和assets的使用
    查看>>
    UINode扩展
    查看>>
    LINUX常用命令
    查看>>
    百度云盘demo
    查看>>
    概率论与数理统计习题
    查看>>
    初学structs2,简单配置
    查看>>
    Laravel5.0学习--01 入门
    查看>>
    时间戳解读
    查看>>
    sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
    查看>>
    @RequestMapping 用法详解之地址映射
    查看>>
    254页PPT!这是一份写给NLP研究者的编程指南
    查看>>
    《Data Warehouse in Action》
    查看>>
    String 源码浅析(一)
    查看>>
    Spring Boot 最佳实践(三)模板引擎FreeMarker集成
    查看>>