一文教你用Python 实现本地分页

python flask实现分页 结合mysql数据库查询,实现分页效果 @user.route("/user_list",methods=['POST','GET']) def user_list(): p = g.args.get("p", '') #页数 show_shouye_status = 0 #显示首页状态 if p =='': p=1 else: ... 阅读详情

在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放到内存里,下面我用Python演示如何实现本地分页的算法(针对二级数据结构)

initialSize = 2 # 首屏展示条数
eachSize = 5    # 剩余页展示条数

local_pages = []  # 本地分页数据

def makePage(d):
    '''
    制作分页数据
    '''
    local_pages.clear()
    if calcSize(d) > initialSize: # 总条数大于首屏数,使用本地分页
        sublist = []
        for item in d:
            for child in item["child"]:
                sublist.append(child)
        
        firstPageSize = min(len(sublist), initialSize) # 第一页的大小

        local_pages.append(sublist[0:firstPageSize]) # 取第一页的集合

        remain_size = len(sublist)-firstPageSize # 剩余条数

        group_count = int(remain_size / eachSize) # 计算分页数

        last_count = remain_size % eachSize # 取余,最后剩余多少条

        idx = 0
        for idx in range(group_count):
            start = firstPageSize + idx * eachSize
            end = start + eachSize
            local_pages.append(sublist[start:end]) # 新增页集合

        if last_count > 0:
            local_pages.append(sublist[-last_count:]) # 余数不为0,将作为最后一页集合
    
    pass
                

def calcSize(d)->int:
    '''
    计算总条数
    '''
    size = 0
    for item in d:
        size += len(item["child"]) + 1
    return size

def printPage():
    '''
    打印页面
    '''
    idx = 0
    for p in local_pages:
        idx += 1
        print("page:{}".format(idx))
        for item in p:
            print(item)


data = [{"id":"1",
         "name":"parent_1",
         "child":[
             {"id":"1_1",
              "name":"RS234326348264",
              "parent_id":"1"
              },
             {"id":"1_2",
              "name":"RS234326348264",
              "parent_id":"1"
              },
             {"id":"1_3",
              "name":"RS234326348264",
              "parent_id":"1"
              },
             {"id":"1_4",
              "name":"RS234326348264",
              "parent_id":"1"
              },
              {"id":"1_5",
              "name":"RS234326348264",
              "parent_id":"1"
              },
              {"id":"1_6",
              "name":"RS234326348264",
              "parent_id":"1"
              },
              {"id":"1_7",
              "name":"RS234326348264",
              "parent_id":"1"
              },
              {"id":"1_8",
              "name":"RS234326348264",
              "parent_id":"1"
              },
              {"id":"1_9",
              "name":"RS234326348264",
              "parent_id":"1"
              }]},

        {"id":"2",
         "name":"parent_2",
         "child":[
              {"id":"2_1",
              "name":"RS234326348264",
              "parent_id":"2"
              }]}]

print(f"首屏展示条数:{initialSize}")
print(f"剩余页展示条数:{eachSize}")
makePage(data)
printPage()

打印结果

首屏展示条数:2
剩余页展示条数:5
page:1
{'id': '1_1', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_2', 'name': 'RS234326348264', 'parent_id': '1'}
page:2
{'id': '1_3', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_4', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_5', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_6', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_7', 'name': 'RS234326348264', 'parent_id': '1'}
page:3
{'id': '1_8', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '1_9', 'name': 'RS234326348264', 'parent_id': '1'}
{'id': '2_1', 'name': 'RS234326348264', 'parent_id': '2'}

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

python代码实现网页分页 分页 分页代码 pagination.py __author__ = 'MR. Dong' from django.utils.safestring import mark_safe class Page: def __init__(self,current_page,data_count,per_page_count=10,page_num=7): """ :param ... 阅读详情

相关推荐

Python 基于Sqlalchemy实现的分页器 QueryPaginate

基于Sqlalchemy 实现的分页器 QueryPaginate 问:为什么不用Sqlalchemy自带的 paginate 呢? 答:Sqlalchemy自带的paginate在实际应用中有所不足,不符合国内用户的习惯,且无法保证选择项一直居中 问:此QueryPaginate是否存在性能问题 答:此分页器已在多项目上使用,不存在此问题 图1.分页器类包含的参数见图 图2.在分页列表内选中项始终居中 上代码 def __init__(self, query, per_page: int =

weixin_43874226的博客 1854

python开发窗体page_PAGE:像Visual Studio一样设计Python GUI窗体

虽然使用标准库tkinter开发Python GUI程序很方便,也提供了强大的功能,但是窗体上的一切都需要程序员使用代码来控制,在页面布局上浪费大量时间,确实不是很方便。今天我们来介绍一个叫做PAGE的Python可视化开发环境,正如该软件网站所描述,PAGE - Python Automatic GUI Generator,这是个用于快速生成Python GUI程序界面的工具,可以像Visual...

weixin_33443597的博客 2968

python在Django中,如何使用MySQL数据库进行分页怎么实现

我们还使用了page_obj对象的一些属性,如has_previous、previous_page_number、number、paginator.num_pages和has_next,来显示分页链接。在你的视图中,你需要导入Paginator和get_object_or_404(如果你需要获取特定的对象)以及你的模型。最后,在你的模板my_template.html中,使用page_obj对象来显示分页链接和对象。在你的视图函数中,首先获取所有对象,然后使用Paginator进行分页。

shixuegen的专栏 1649

通过PAGE生成python GUI界面(用PAGE拖出需要的GUI界面)

注:当前我的使用环境为windows10 64bit/python v3.6/PAGE v4.14/Tcl v8.6.7.0当前我定义一个目标,最终需要生成一个登录界面的GUI代码,如下:安装好各软件后,就可以运行PAGE来像VB一样所见即可得的拖出我们需要的GUI界面了。首先。运行PAGE,主界面如下:相信这种界面大家都很熟悉,就是可以直接拖放左侧的widget至中间的画板中,右则是各个widg...

lxy210781的专栏 1万+

Python数据可视化 Pyecharts 制作 Page 顺序多图

大家好,我是Mr数据杨,想象一下,'基本设置’这一部分,就像是每位三国的谋士在实施策略前都要做的基本准备,比如曹操手下的谋士郭嘉,他洞悉天象,深思熟虑,才能在官渡之战中以少胜多,取得胜利。Python中的基本设置,也正如此,它决定了代码在执行时的环境,甚至可能影响代码的结果。接下来的’布局渲染配置’,就好比那位运筹帷幄的周瑜,他巧妙布局,在赤壁之战中掌控火攻的节奏,最终扭转战局。同样在Python中对布局渲染的配置,会决定数据的展示方式,让数据更有说服力。

Mr数据杨 4万+

使用Python编写程序实现分页功能

在编程中,分页功能是一种常见的需求,它可以将大量的数据按照一页一页的方式展示给用户,提高用户体验和数据浏览的效率。本文将介绍如何使用Python编写程序实现分页功能,并提供相应的源代码示例。

2301_79325339的博客 1161

python分页功能实现

class Pagination: def __init__(self,list_info,page_num,current_page): ''' :param list_info: 可迭代对象 一般为通过orm数据库查询的数据 :param page_num: 每页显示的数量 :param current_page:当前页 ''' #python divmod() 函数把除数和余数运算结果结合起来,.

fksfdh的博客 4470

Python + Playwright(1):页面操作(Page)「详细介绍」

Playwright 提供了丰富的页面操作功能,通过 page 对象可以实现对网页的导航、元素定位、交互、页面事件监测等操作。Page 对象是 Playwright 中表示页面的核心对象,它允许我们控制和操作浏览器中的页面。

blues_C的博客 2万+

python实现数据列表的分页

#分页参数获取并调用分页方法 def list(request): list = [1,2,3,4,5,6,7,8,9] #list总条数 count = len(list) #获取分页参数,多少页 page = request.GET.get(‘page’) obj = getPage(page) data = list[obj.start:obj.end] return JsonRespons...

weixin_44520602的博客 3102

把STM32MP135当单片机玩:实战SD卡脱机运行LED程序(基于MP135DK开发板)

本文详细介绍了如何在STM32MP135开发板上实现SD卡脱机运行LED程序,通过裸机开发方式(Bare Metal)利用HAL库完成GPIO控制,并解析了SD卡启动流程。内容涵盖工程创建、代码编写、SD卡烧录及常见问题排查,为开发者提供了一种高性能单片机开发方案。

weixin_33734785的博客 242

TDSQL-单机安装

根据腾讯云官方要求,TDSQL安装至少需要三台机器。本人想要学习TDSQL但是没有足够的机器资源,经过仔细分析研究TDSQL安装过程,尝试发现单台机器也可以成功安装TDSQL,现将本人单台机器安装TDSQL的过程以及安装过程中遇到的问题在此分享。具体安装过程可参考腾讯官方文档,本文仅分享与官方文档不一致的步骤。

u012607648的博客 6802

Python | 实现pdf文件分页

pdf的分页,我们在现实生活中,是难免会遇到的事。当你遇到时,你是怎么解决的呢?在Python中,实现pdf分页,是极其简单快速的,只需要运行几行代码,即可实现,不管你的pdf文件有多大,下面让我们一起来看看吧~

echohye的博客 1671

【面试经验】京东-技术产品经理一面:从紧张到反思的全流程复盘

本文详细复盘了京东技术产品经理一面的全流程,从面试前的简历打磨、业务理解和技术基础准备,到面试中的高压对话和突发状况应对,再到面试后的深度反思与改进方案。文章特别强调了技术产品经理需要具备的技术理解力、数据敏感度和商业思维,并提供了实用的面试建议和准备技巧。

weixin_28730927的博客 161

python对列表进行分页_python列表分页

上章的结束,若在实际开发过程中,会发现一个问题,那就首页或关注分享,是一下子按时间顺序全部显示出来,这在实际项目中不可能出现的,想想实际中的产品是如何做的?一般来说,无非是两种,一种是使用页码,来进行分页,还有一种是js到页底自动加载,而使用页底自动加载的话,上一章实现的通过tab来区分全部和关注就不可取了,因为无法保证两个tab加载的内容数量一致,导致页面布局就无法实现,所以,这里首页参考tum...

weixin_39750731的博客 1816

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1586

CRISPR筛选全流程指南:从文库构建到数据分析实战

功能基因组学研究需要高效解析基因型与表型的关联,高通量筛选技术是其中的关键工具。基于CRISPR系统的筛选方法通过大规模sgRNA文库扰动基因功能,结合慢病毒递送和测序分析,能够系统鉴定影响细胞增殖、耐药、病毒感染的候选基因。与RNAi或化学小分子筛选相比,CRISPR筛选具有覆盖全基因组、脱靶率低、信号清晰等优势,已广泛应用于药物靶点发现、合成致死和免疫治疗机制研究。本文围绕实验设计与操作中的核心要点展开,涵盖文库扩增、病毒滴度控制、MOI把握、筛选模式选择以及基于MAGeCK的sgRNA丰度分析,并针对

weixin_31188927的博客 275

python之pdf分页

这是最开始的我输入的文件 python代码如下 import os from PyPDF2 import PdfFileReader, PdfFileWriter #参数pdf文件位置 页数大小 def pdfPageingAndSize(filePath,pageSize=1): fileDir,fileName=os.path.split(filePath) f...

Qin1999的博客 2897

告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码)

本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。

weixin_42551227的博客 373

python实现分页

当我们有大量数据需要展示时,需要对数据进行分页展示。这时就用到了分页功能,分页使得数据更好的展示给用户。当访问页码数大于总页码数的时候。使用python实现分页功能。

有点坏。的博客 3578

深入介绍 SAP OData CSRF Token 的一些技术细节

跨站请求伪造(Cross-Site Request Forgery,简称 CSRF)是一种网络攻击手段,它允许攻击者伪造用户的身份来执行未经授权的操作。为了防止 CSRF 攻击,常用的一种技术手段就是 CSRF Token.CSRF Token 是一种随机生成的防伪 Token,它由服务器颁发给客户端,并需要客户端在提交某些特定类型的请求时,将该 Token 添加到 HTTP 请求的头部字段去。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 642

RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)

本文记录的是利用中的模块优化的目标检测网络模型。通过局部特征提取器、周围环境提取器、联合特征提取器和全局环境提取器来提取局部特征、周围环境和全局环境信息,充分利用不同层次的信息。本文将其应用到中,并进行二次创新,使网络能够更好的处理多类别目标的分类能力。CGNet: A Light-Weight Context Guided Network for Semantic Segmentation1️⃣ 首先通过局部特征提取器floc(∗)floc(*)floc(∗)和周围环境提取器fsur(∗)f_{sur }

Limiiiing的博客 1348

python flask 分页_python flask实现分页效果的实例详解

这篇文章主要为大家详细介绍了python flask实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页。@app.route('/',methods=['GET'])@app.route('/')def home(page=1):pagination=Post.query.or...

weixin_39726379的博客 705

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python flask 分页_python flask实现分页效果

在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页。@app.route('/',methods=['GET'])@app.route('/')def home(page=1):pagination=Post.query.order_by(Post.publish_date.desc()).paginate(page, per_page=...

weixin_39653717的博客 157

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python中实现分页

#分页使用 比如说在Python的django框架中使用: 目录 #分页使用比如说在Python的django框架中使用: 1.先导入PageNumberPagination变量 2.自己定义的视图引用该变量 3.写默认每页信息条数和每页显示的最大条数,页码 4.在自己的视图集中调用 pagination_class = MyPagination ......

justzcy的博客 1862

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MCP Python SDK 分页实战:基于 simple-pagination 示例实现 Tools、Resources、Prompts 的 Cursor 分页

本文以官方示例 [examples/servers/simple-pagination](https://link.gitcode.com/i/2b5f4e8f8b05158d1df30af206475aea) 为主线,完整讲解如何在 MCP 服务器上为 tools、resources、prompts 三类列表实现基于 cursor(游标)的分页,并配套给出 stdio 与 Streamable

gitblog_00957的博客 1069
上一篇: 让 Python 代码效率更高的 9 个编程技巧
下一篇: Peewee:是简化Python数据库瑞士军刀
Python_P叔
博客等级 码龄3年 5444粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值