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三元运算实现方法
Jan 12 Python
Python自动连接ssh的方法
Mar 07 Python
python3实现跳一跳点击跳跃
Jan 08 Python
详解python之协程gevent模块
Jun 14 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
django基于restframework的CBV封装详解
Aug 08 Python
查看端口并杀进程python脚本代码
Dec 17 Python
mac使用python识别图形验证码功能
Jan 10 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
JavaScript原型链示例分享
2014/01/26 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
使用python实现个性化词云的方法
2017/06/16 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
python 读取串口数据的示例
2020/11/09 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
技术人员面试提纲
2013/11/28 职场文书
写给保洁员表扬信
2014/01/08 职场文书
三年级数学教学反思
2014/01/31 职场文书
公司授权委托书
2014/04/04 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android