python flask实现分页的示例代码


Posted in Python onAugust 02, 2018

结合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:
    p=int(p)
    if p > 1:
      show_shouye_status = 1

  mdb = db_session()
  limit_start = (int(p)-1)*10#起始

  sql ="select * from page_text limit {0},10".format(limit_start)
  user_list=mdb.getMany(sql)

  sql="select count(id) as total from page_text"
  count = mdb.getOne(sql)['total'] #总记录
  total = int(math.ceil(count/10.0)) #总页数

  dic = get_page(total,p)
  datas={
    'user_list':user_list,
    'p': int(p),
    'total': total,
    'show_shouye_status': show_shouye_status,
    'dic_list': dic

  }
  return render_template("user_list.html",datas=datas)

其中get_page为封装的方法:

def get_page(total,p):
  show_page = 5  # 显示的页码数
  pageoffset = 2 # 偏移量
  start = 1  #分页条开始
  end = total #分页条结束

  if total > show_page:
    if p > pageoffset:
      start = p - pageoffset
      if total > p + pageoffset:
        end = p + pageoffset
      else:
        end = total
    else:
      start = 1
      if total > show_page:
        end = show_page
      else:
        end = total
    if p + pageoffset > total:
      start = start - (p + pageoffset - end)
  #用于模版中循环
  dic = range(start, end + 1)
  return dic

如果这里需要进行前端模板的拼接的话,可以需要以下代码(bootstrap)

<ul class="pagination">
    {% if datas.show_shouye_status==1%}
      <li class=''><a href='/user/user_list?p=1'>首页</a></li>
      <li class=''><a href='/user/user_list?p={{datas.p-1}}'>上一页</a></li>
   {%endif%}

    {% for dic in datas.dic_list %}
      {% if dic==datas.p%}
       <li class="active"><a href="/user/user_list?p={{dic}}" rel="external nofollow" rel="external nofollow" >{{dic}}</a></li>
      {%else%}
        <li><a href="/user/user_list?p={{dic}}" rel="external nofollow" rel="external nofollow" >{{dic}}</a></li>
      {%endif%}
    {%endfor%}

    {% if datas.p < datas.total%}
      <li class=''><a href='/user/user_list?p={{datas.p+1}}'>下一页</a></li>
      <li class=''><a href='/user/user_list?p={{datas.total}}'>尾页</a></li>
    {%endif%}
      共{{datas.total}}页
 </ul>

bootstrap样式 http://edu.3water.com/bootstrap/bootstrap-pagination.html

如果是返回给APP端的话,直接返回data数据就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的净值数据接口调用示例分享
Mar 15 Python
Python正规则表达式学习指南
Aug 02 Python
Python实现全角半角字符互转的方法
Nov 28 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
基于Django实现日志记录报错信息
Dec 17 Python
pytorch中的自定义数据处理详解
Jan 06 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 #Python
Python实现正整数分解质因数操作示例
Aug 01 #Python
Python列表生成式与生成器操作示例
Aug 01 #Python
Python开发最牛逼的IDE——pycharm
Aug 01 #Python
django从请求到响应的过程深入讲解
Aug 01 #Python
python3.6的venv模块使用详解
Aug 01 #Python
从请求到响应过程中django都做了哪些处理
Aug 01 #Python
You might like
php解决约瑟夫环示例
2014/04/09 PHP
php强制运行广告的方法
2014/12/01 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
php实现简易计算器
2020/08/28 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
财务简历的自我评价
2014/03/05 职场文书
企业安全生产承诺书
2014/05/22 职场文书
课外访万家心得体会
2014/09/03 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
拾金不昧感谢信
2015/01/21 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书