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线程的两种编程方式
Apr 14 Python
python求解水仙花数的方法
May 11 Python
numpy中索引和切片详解
Dec 15 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
记录Python脚本的运行日志的方法
Jun 05 Python
在Django的View中使用asyncio的方法
Jul 12 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
python实现打砖块游戏
Feb 25 Python
对python中list的五种查找方法说明
Jul 13 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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处理excel cvs表格的方法实例介绍
2013/05/13 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
python中的字典使用分享
2016/07/31 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python获取中文字符串长度的方法
2018/11/14 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python Gabor滤波器讲解
2020/10/26 Python
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
八年级历史教学反思
2014/01/10 职场文书
项目施工员岗位职责
2014/03/09 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
开服装店计划书
2014/08/15 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
教师求职自荐信
2015/03/26 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript