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创建XML文档
Mar 01 Python
python练习程序批量修改文件名
Jan 16 Python
python生成随机mac地址的方法
Mar 16 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
解决python大批量读写.doc文件的问题
May 08 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
Python模块、包(Package)概念与用法分析
May 31 Python
python判断文件夹内是否存在指定后缀文件的实例
Jun 10 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
python连接mongodb集群方法详解
Feb 13 Python
如何在Win10系统使用Python3连接Hive
Oct 15 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php 学习资料零碎东西
2010/12/04 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
js 页面输出值
2008/11/30 Javascript
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python地震数据可视化详解
2019/06/18 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Python爬取某平台短视频的方法
2021/02/08 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
党委班子剖析材料
2014/08/21 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python