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中的lstrip()方法使用简介
May 19 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
python实现word 2007文档转换为pdf文件
Mar 15 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
如何用Python绘制3D柱形图
Sep 16 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
python 对图片进行简单的处理
Jun 23 Python
Python极值整数的边界探讨分析
Sep 15 Python
virtualenv隔离Python环境的问题解析
Jun 21 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 cookie的操作实现代码(登录)
2010/12/29 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
Vue实现简易计算器
2020/02/25 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
跟老齐学Python之做一个小游戏
2014/09/28 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
python语言元素知识点详解
2019/05/15 Python
python实现证件照换底功能
2019/08/20 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
医药营销个人求职信范文
2014/02/07 职场文书
检讨书范文300字
2015/01/28 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
React配置子路由的实现
2021/06/03 Javascript