python web框架中实现原生分页
作者:wxp_2001 发布时间:2021-05-15 12:25:42
标签:python,web,分页
本文实例为大家分享了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
来源:https://blog.csdn.net/wuxingpu5/article/details/95089765


猜你喜欢
- 数据采集我们上一篇介绍了,如何采集电影评论,看看这个电影好不好看.今天,我们来采集大家熟悉的百度贴吧的排行榜。发送请求我们首先确定我们的目标
- 什么是PromisePromise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,
- 1.安装pyinstaller https://www.jb51.net/article/177160.htm2.安装pywin32 htt
- 前言图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起
- ECMAScript 5.1规范§15.4.4.4 中说到:concat函数是有意设计成通用的;它并不要求它的this值必须得是个Array
- 简介python 动态执行字符串代码片段(也可以是文件), 一般会用到exec,eval。execexec_stmt ::= "e
- 最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。PS:本文仅针对W
- 它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在
- 1.if判断1.1 if语句if 表达式:语句1语句2……1.“if&
- Git 基本操作Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。本章将对有关创建与提交你的项目快照的命令作介绍。获取与创建项
- 前提对Vue全家桶有基本的认知.用有node环境了解express另外本篇只是介绍登录状态的权限验证,以及登录,注销的前后端交互.具体流程(
- 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Un
- pytorch之添加BN层批标准化模型训练并不容易,特别是一些非常复杂的模型,并不能非常好的训练得到收敛的结果,所以对数据增加一些预处理,同
- 导入在阅读过程中如果遇到一些带有水印的资料是比较烦心的,如下图所示,水印以及类似的内容会影响我们的阅读体验,而市面上去水印的功能有多要收费且
- 二维数组二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列
- web表单是web应用程序的基本功能。它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入
- 在本地windows机器开发的Django项目运行正常,放到服务器上后响应超慢,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找
- 1.过程:1>注册驱动器类:Class.forName()2>连接数据库:String url = "jdbc:sql
- 在我们的日常生活工作中,经常会遇到需要上传日志的场景,比如多台机器运行同一个程序,并且需要记录每台机器程序产生的日志,根据相关关键词告警,或
- 本文实例讲述了Python集中化管理平台Ansible介绍与YAML。分享给大家供大家参考,具体如下:一 中文社区http://ansibl