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中expandtabs()方法的使用
May 18 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
Python yield与实现方法代码分析
Feb 06 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
Django之无名分组和有名分组的实现
Apr 16 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
python文件和文件夹复制函数
Feb 07 Python
解决Django no such table: django_session的问题
Apr 07 Python
基于python实现坦克大战游戏
Oct 27 Python
详解如何使用Pytest进行自动化测试
Jan 14 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
Python 阶乘详解
Oct 05 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
php5.2时间相差8小时
2007/01/15 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python发展史及网络爬虫
2019/06/19 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
会计专业自荐信范文
2013/12/02 职场文书
树转促学习心得体会
2014/09/10 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
个人租房协议书样本
2014/10/01 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
鸦片战争观后感
2015/06/09 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
怎么用Python识别手势数字
2021/06/07 Python
SQL Server删除表中的重复数据
2022/05/25 SQL Server