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从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
python提取页面内url列表的方法
May 25 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python函数中将变量名转换成字符串实例
May 11 Python
利用python汇总统计多张Excel
Sep 22 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
使用Python封装excel操作指南
Jan 29 Python
python playwright 自动等待和断言详解
Nov 27 Python
python获取带有返回值的多线程
May 02 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
取得一定长度的内容,处理中文
2006/12/20 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python面向对象之类和对象实例详解
2018/12/10 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python time()的实例用法
2020/11/03 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
什么是makefile? 如何编写makefile?
2012/08/08 面试题
人力资源作业细则
2014/03/03 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
交通安全寄语大全
2014/04/08 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
生日答谢词
2015/01/05 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
离婚上诉状范文
2015/05/23 职场文书
element多个表单校验的实现
2021/05/27 Javascript
python ansible自动化运维工具执行流程
2021/06/24 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS