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对小数进行除法运算的正确方法示例
Aug 25 Python
Python random模块常用方法
Nov 03 Python
python编写简单爬虫资料汇总
Mar 22 Python
python opencv之SIFT算法示例
Feb 24 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
pygame实现打字游戏
Feb 19 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 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个人网站架设连环讲(二)
2006/10/09 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
C语言50道问题
2014/10/23 面试题
2014年基层党组织公开承诺书
2014/03/29 职场文书
自主招生教师推荐信
2014/05/10 职场文书
物流专业求职信
2014/06/30 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
virtualenv隔离Python环境的问题解析
2022/06/21 Python