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中使用Mako模版库的简单教程
Apr 08 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
简单谈谈python的反射机制
Jun 28 Python
浅谈django rest jwt vue 跨域问题
Oct 26 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
Python基础之Socket通信原理
Apr 22 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
2014过年倒计时示例
2014/01/31 PHP
php编写简单的文章发布程序
2015/06/18 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
删除重复数据的算法
2006/11/23 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
深入讲解Python编程中的字符串
2015/10/14 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
促销活动方案模板
2014/02/24 职场文书
党的群众路线调研报告
2014/11/03 职场文书
正规欠条模板
2015/07/03 职场文书
创业计划书之网吧
2019/10/10 职场文书
高一作文之暖冬
2019/11/09 职场文书
python如何获取网络数据
2021/04/11 Python
Html5调用企业微信的实现
2021/04/16 HTML / CSS