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标准库之随机数 (math包、random包)介绍
Nov 25 Python
Python中操作文件之write()方法的使用教程
May 25 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
python实现人民币大写转换
Jun 20 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
Django如何防止定时任务并发浅析
May 14 Python
pandas分区间,算频率的实例
Jul 04 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
基于Python生成个性二维码过程详解
Mar 05 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 Python
python turtle绘图
May 04 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
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
详解AngularJS 模块化
2017/06/14 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
js实现聊天对话框
2020/02/08 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python实现按行切分文本文件的方法
2016/04/18 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python入门之后再看点什么好?
2018/03/05 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
公证书标准格式
2014/04/10 职场文书
2014年导购员工作总结
2014/11/18 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL