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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
Python中DJANGO简单测试实例
May 11 Python
python登录豆瓣并发帖的方法
Jul 08 Python
Python配置mysql的教程(推荐)
Oct 13 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
python中pyplot基础图标函数整理
Nov 10 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扩展图文教程
2008/12/12 PHP
php实现天干地支计算器示例
2014/03/14 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
经验几则 推荐
2006/09/05 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python生成随机图形验证码详解
2017/11/08 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python的常见矩阵运算(小结)
2019/08/07 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
pytorch数据预处理错误的解决
2020/02/20 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
C面试题
2015/10/08 面试题
中秋手机店促销方案
2014/06/16 职场文书
班级心理活动总结
2014/07/04 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
中秋节晚会开场白
2015/05/29 职场文书
刮痧观后感
2015/06/05 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS