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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
python将文本转换成图片输出的方法
Apr 28 Python
总结Python编程中三条常用的技巧
May 11 Python
Tensorflow简单验证码识别应用
May 25 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
浅析PHP与Python进行数据交互
May 15 Python
Python安装Flask环境及简单应用示例
May 03 Python
Django 拆分model和view的实现方法
Aug 16 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
python 实现单通道转3通道
Dec 03 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 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在线打包程序源码
2008/07/27 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
推荐dojo学习笔记
2007/03/24 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
活动邀请函范文
2014/01/19 职场文书
业绩考核岗位职责
2014/02/01 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
应用心理学专业求职信
2014/08/04 职场文书
暑期培训班招生方案
2014/08/26 职场文书
分居协议书范本
2014/11/03 职场文书
检讨书范文1000字
2015/01/28 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
高三英语教学反思
2016/03/03 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL