python web框架中实现原生分页


Posted in Python onSeptember 08, 2019

本文实例为大家分享了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python代码调试的几种方法总结
Apr 15 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
Python 高级专用类方法的实例详解
Sep 11 Python
python将控制台输出保存至文件的方法
Jan 07 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
Python numpy多维数组实现原理详解
Mar 10 Python
Python新手如何理解循环加载模块
May 29 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
如何使用flask将模型部署为服务
May 13 Python
asyncio异步编程之Task对象详解
Mar 13 Python
Python if else条件语句形式详解
Mar 24 Python
python中open函数的基本用法示例
Sep 07 #Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 #Python
利用python计算时间差(返回天数)
Sep 07 #Python
Django配置MySQL数据库的完整步骤
Sep 07 #Python
Django项目创建到启动详解(最全最详细)
Sep 07 #Python
Python笔试面试题小结
Sep 07 #Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 #Python
You might like
MySQL授权问题总结
2007/05/06 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php的常量和变量实例详解
2017/06/27 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
javascript实用方法总结
2015/02/06 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
django将数组传递给前台模板的方法
2019/08/06 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
五一劳动节演讲稿
2014/09/12 职场文书
授权委托书
2014/09/17 职场文书
2015年度物流工作总结
2015/04/30 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python