本文实例为大家分享了python web框架实现原生分页的具体代码,供大家参考,具体内容如下
原生分页器 示例
#!/usr/bin/env python # -*- coding:utf-8 -*- class Pagination: def __init__(self, p, all_count, pre=10, max_show=11): ''' :param p: 当前页码 :param all_count: 数据总条数 :param pre: 每页数据量 :param max_show: 最多页码数 ''' try: self.p = int(p) # 传进来的页码 if self.p <= 0: self.p = 1 except Exception as e: self.p = 1 # 总量 # all_count = all_count # pre = per # 每页数据条数 total_num, more = divmod(all_count, pre) if more: total_num += 1 # total_num总数据页数 # 显示页码数 max_show = max_show if total_num <= max_show: # 总数据量很小 page_start = 1 page_end = total_num else: if self.p - max_show // 2 <= 0: # 防止左边出现0页 page_start = 1 page_end = max_show elif self.p + max_show // 2 >= total_num + 1: # 防止右边出现超出 page_end = total_num page_start = page_end - max_show else: page_start = self.p - max_show // 2 page_end = self.p + max_show // 2 # 数据的起始结束 self.start = (self.p - 1) * pre self.end = self.p * pre # 页码 self.page_start = page_start self.page_end = page_end self.total_num = total_num @property def page_html(self): li_list = [] for i in range(self.page_start, self.page_end + 1): if i == self.p: li_list.append('<li class="active"><a href="?p={}" >{}</a></li>'.format(i, i)) else: li_list.append('<li><a href="?p={}" >{}</a></li>'.format(i, i)) # 添加页首 页尾 li_list.insert(0, '<li><a href="?p={}" aria-label="Previous"><span aria-hidden="true">«</span></a></li>'.format( self.p - 1)) li_list.append( '<li><a href="?p={}" aria-label="Next"><span aria-hidden="true">»</span> </a></li>'.format(self.p + 1)) if self.p == 1: li_list[0] = '<li class="disabled"><span aria-hidden="true">«</span></li>' elif self.p == self.total_num: li_list[-1] = '<li class="disabled"><span aria-hidden="true">»</span></li>' pagehtml = ''.join(li_list) return pagehtml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Mybatis框架及原理实例分析,包括了Mybatis框架及原理实例分析的使用技巧和注意事项,需要的朋友参考一下 摘要 本篇文章只是个人阅读mybatis源码总结的经验或者个人理解mybatis的基本轮廓,作为抛砖引玉的功能,希望对你有帮助,如果需要深入了解细节还需亲自去阅读源码。 mybatis基本架构 mybatis的源码应该算是比较容易阅读的,首先mybatis核心功能就是执行
本文向大家介绍Laravel框架分页实现方法分析,包括了Laravel框架分页实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架分页实现方法。分享给大家供大家参考,具体如下: Laravel使用的过程中,有些功能把前端页面的表达“写死了”,比如分页的翻页按钮! 当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满足的客户
本文向大家介绍Laravel框架生命周期与原理分析,包括了Laravel框架生命周期与原理分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架生命周期与原理。分享给大家供大家参考,具体如下: 引言: 如果你对一件工具的使用原理了如指掌,那么你在用这件工具的时候会充满信心! 正文: 一旦用户(浏览器)发送了一个HTTP请求,我们的apache或者nginx一般都转到inde
大家好,我想了解Spring IOC中原型作用域的工作原理。 对于原型bean,我试图通过: 1来理解。读了一遍又一遍,但不能完全理解(https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-scopes-other-injection) 2。试着通过源代码调试,只明
本文向大家介绍Django框架 Pagination分页实现代码实例,包括了Django框架 Pagination分页实现代码实例的使用技巧和注意事项,需要的朋友参考一下 一、自定义分页 1、基础版自定义分页 2、封装保存版 3、封装保存版使用指南 二、Django内置分页 1、内置分页view部分 2、内置分页HTML部分 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊
本文向大家介绍Django框架实现的分页demo示例,包括了Django框架实现的分页demo示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Django框架实现的分页。分享给大家供大家参考,具体如下: 首先初始化model,建表 然后用pycharm的数据库模块可视化插入 分页思路 url传递参数http://127.0.0.1:8000/books/?page=5比如这样传递的参数