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 Property属性的2种用法
Jun 21 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
Python通过future处理并发问题
Oct 17 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
详解如何减少python内存的消耗
Aug 09 Python
Python实现括号匹配方法详解
Feb 10 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
PyTorch中的C++扩展实现
Apr 02 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Django之腾讯云短信的实现
Jun 12 Python
python + selenium 刷B站播放量的实例代码
Jun 12 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基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python解析基于xml格式的日志文件
2017/02/25 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
使用Python更换外网IP的方法
2018/07/09 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Python range与enumerate函数区别解析
2020/02/28 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
经典c++面试题二
2015/08/14 面试题
2013年高中生自我评价
2013/10/23 职场文书
机械设计专业应届生求职信
2013/11/21 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
完整版商业计划书
2014/09/15 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Python 统计序列中元素的出现频度
2022/04/26 Python