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生成随机密码的示例分享
Feb 18 Python
python 查找字符串是否存在实例详解
Jan 20 Python
python Pygame的具体使用讲解
Nov 03 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
python中int与str互转方法
Jul 02 Python
Python for循环中的陷阱详解
Jul 13 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
python3实现高效的端口扫描
Aug 31 Python
Python+OpenCV实现在图像上绘制矩形
Mar 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
商务英语专业自荐信
2013/10/14 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
大学生工作求职信
2014/06/23 职场文书
导游欢送词
2015/01/31 职场文书
老员工辞职信范文
2015/05/12 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
mysql脏页是什么
2021/07/26 MySQL