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之大话题小函数(2)
Oct 10 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
Feb 13 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
在cmder下安装ipython以及环境的搭建
Oct 19 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
Python可以用来做什么
Nov 23 Python
Python pygame实现中国象棋单机版源码
Jun 20 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
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python实现注册、登录小程序功能
2018/09/21 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
电工工作职责范本
2014/02/22 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
统计专业自荐书
2014/07/06 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
项目负责人岗位职责
2015/02/15 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
Nginx如何配置根据路径转发详解
2022/07/23 Servers