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 相关文章推荐
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
详解python的几种标准输出重定向方式
Aug 15 Python
python获取list下标及其值的简单方法
Sep 12 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
python输出决策树图形的例子
Aug 09 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 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容易忘记的知识点分享
2013/04/30 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
php构造函数实例讲解
2013/11/13 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
python数据结构之链表详解
2017/09/12 Python
实践Vim配置python开发环境
2018/07/02 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python实战之制作天气查询软件
2019/05/14 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
校长岗位职责
2013/11/26 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
Go语言grpc和protobuf
2022/04/13 Golang
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL