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中os和shutil模块实用方法集锦
May 13 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
python同步windows和linux文件
Aug 29 Python
利用Python复制文件的9种方法总结
Sep 02 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
python随机模块random的22种函数(小结)
May 15 Python
python中@property的作用和getter setter的解释
Dec 22 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
Python语言内置数据类型
Feb 24 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与MySQL交互使用详解
2006/10/09 PHP
实现“上一页”和“下一页按钮
2006/10/09 PHP
php实现简单文件下载的方法
2015/01/30 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
python类继承用法实例分析
2014/10/10 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
python编程嵌套函数实例代码
2018/02/11 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
python3.5的包存放的具体路径
2020/08/16 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
历史学专业毕业生求职信
2013/09/27 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
三年级学生期末评语
2014/12/26 职场文书
感恩教师主题班会
2015/08/12 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python