page.py
'''
django内使用方式:
all_count = models.UserInfo.objects.all().count()
# path_info 当前页的url
# all_count所有用户信息的数量
# 10 一页显示的数量
page_info = PageInfo(request.GET.get('p'),10,all_count,request.path_info)
print(page_info.end())
user_list = models.UserInfo.objects.all()[page_info.start():page_info.end()]
'''

class PageInfo(object):def __init__(self,current_page,per_page_num,all_count,base_url,page_range=7):''':param current_page: 当前页:param per_page_num:  每页显示数据的条数:param all_count:  数据库用户总个数:param base_url:  生成页码标签的前缀:param page_range:  页面最多显示的页码个数'''try:current_page = int(current_page)except Exception as e:current_page = int(1)self.current_page = current_pageself.per_page_num = per_page_numself.all_count = all_counta,b = divmod(all_count,per_page_num)if b != 0:self.all_page = a + 1else:self.all_page = aself.base_url = base_urlself.page_range = page_rangedef start(self):return (self.current_page - 1)*self.per_page_numdef end(self):return self.current_page * self.per_page_numdef page_str(self):'''在HTML页面中显示页码信息:return:''''''<nav aria-label="..."><ul class="pager"><li><a href="#">Previous</a></li><li><a href="#">Next</a></li></ul></nav>'''page_list = []if self.current_page <= 1:prev = "<li><a href='#'>上一页</a></li>"else:prev = "<li><a href='%s?p=%s'>上一页</a></li>"%(self.base_url ,self.current_page - 1,)page_list.append(prev)if self.all_page <=self.page_range:start = 1end = self.all_page+1else:# 页数if self.current_page > int(self.page_range/2):if (self.current_page + int(self.page_range/2)) > self.all_page:start = self.all_page - self.page_range + 1end = self.all_page + 1else:start = self.current_page-int(self.page_range/2)end = self.current_page+int(self.page_range/2)+1else:start = 1end = self.page_range+1for i in range(start,end):if self.current_page == i:temp =  "<li class='active'><a href='%s?p=%s'>%s</a></li>" %(self.base_url,i,i)else:temp = "<li ><a href='%s?p=%s'>%s</a></li>" % (self.base_url, i, i)page_list.append(temp)if self.current_page >= self.all_page:nex = "<li><a href='#'>下一页</a></li>"else:nex = "<li><a href='%s?p=%s'>下一页</a></li>"%(self.base_url, self.current_page + 1,)page_list.append(nex)return ''.join(page_list)

转载于:https://www.cnblogs.com/can-H/p/6918195.html

python-分页代码相关推荐

  1. 【机器视觉案例】(5) AI视觉,手势调节物体尺寸,附python完整代码

    各位同学好,今天和大家分享一下如何使用opencv+mediapipe完成远程手势调节图片尺寸的案例.先放张图看效果.当拇指和食指竖起时,根据食指间的连线的长度自由缩放图片尺寸.图片的中点始终位于指尖 ...

  2. 【机器视觉案例】(5) AI视觉,远程手势控制虚拟计算器,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe+Opencv完成虚拟计算器,先放张图看效果.FPS值为29,食指和中指距离小于规定阈值则认为点击按键,为避免重复数字出现,规定每20帧可点击一 ...

  3. 【MediaPipe】(4) AI视觉,远程手势调节电脑音量,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手势调节电脑音量,先放张图看效果. 注意!! 本节需要用到手部关键点的实时跟踪,我已经在之前的文章中详细写过了,本节会直接使用,有疑问的同学 ...

  4. 【深度学习】(2) 数据加载,前向传播2,附python完整代码

    生成数据集: tf.data.Dataset.from_tensor_slices(tensor变量) 创建一个数据集,其元素是给定张量的切片 生成迭代器: next(iter()) next() 返 ...

  5. 【机器学习入门】(13) 实战:心脏病预测,补充: ROC曲线、精确率--召回率曲线,附python完整代码和数据集

    各位同学好,经过前几章python机器学习的探索,想必大家对各种预测方法也有了一定的认识.今天我们来进行一次实战,心脏病病例预测,本文对一些基础方法就不进行详细解释,有疑问的同学可以看我前几篇机器学习 ...

  6. 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集

    各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...

  7. 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集

    各位同学好,今天和大家分享一下python机器学习中的决策树算法,在上一节中我介绍了决策树算法的基本原理,这一节,我将通过实例应用带大家进一步认识这个算法.文末有完整代码和数据集,需要的自取.那我们开 ...

  8. 【机器学习入门】(3) 朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)附python完整代码及数据集

    各位同学好,今天我和大家分享一下朴素贝叶斯算法中的三大模型.在上一篇文章中,我介绍了朴素贝叶斯算法的原理,并利用多项式模型进行了文本分类预测. 朴素贝叶斯算法 -- 原理,多项式模型文档分类预测,附p ...

  9. 同一个内容,对比Java、C、PHP、Python的代码量,结局意外了

    为什么都说Python容易上手!是真的吗? 都说Python通俗易懂,容易上手,甚至不少网友表示「完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能 ...

  10. GitHub上7000+ Star的Python常用代码合集

    作者 | 二胖并不胖 来源 | 大数据前沿(ID:bigdataqianyan) 今天二胖给大家介绍一个由一个国外小哥用好几年时间维护的Python代码合集.简单来说就是,这个程序员小哥在几年前开始保 ...

最新文章

  1. 推荐7个最新发现的神仙网站,让人心动!
  2. Apache Hadoop 2.7如何支持读写OSS
  3. 自定义动画 animate || 案例:王者荣耀手风琴效果分析
  4. journalctl -xe mysql_journalctl 日志查看方法
  5. 防火墙在setup进入不了
  6. CCF201703-4 地铁修建(100分)【Kruskal算法+二分+最短路】
  7. python 显示表格数据匹配_比较两个电子表格文件并提取机器匹配数据的最简单和最快的方法是什么?...
  8. 关于网页设计工具的50个新的资源和灵感
  9. 驱动加载工具(InstDrv - V1.3中文版)
  10. qpython3怎么运行代码_关于使用qpython和qpython3写程序
  11. 51单片机学习案例——自学使用
  12. 弱水三千,只取一瓢饮
  13. C语言---简单五子棋小游戏
  14. [云上贵州2017]智慧交通预测挑战赛
  15. 解决苹果手机按钮的圆角问题
  16. c语言俄罗斯方块程序设计论文,c语言俄罗斯方块游戏程序设计报告
  17. Git-fatal: unable to access ‘https://gitlab.XX.git/‘: Could not resolve host: gitlab.XX.com.cn
  18. 高通平台开发系列讲解(USB篇)USB端口的说明及切换方法
  19. python 写文件的疑问
  20. 阿里的CTR预测:Deep Interest Network

热门文章

  1. 清空mysql一个库中的所有表_mysql怎样清空一个数据库中的所有表_MySQL
  2. highcharts一天时间 与一周时间_一天当中什么时间减肥降重最好的
  3. 最长回文串--动态规划
  4. java线程礼让yield
  5. php盒子模型,CSS盒子模型介绍
  6. python中title用法_在CSV fi中使用Title()
  7. git只提交一张图片_Git 图形化操作之合并提交记录
  8. 测试硬盘读写速度软件_Linux测试硬盘读写速度用什么命令
  9. qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...
  10. 十九、Pytorch中的数据加载