填充一些数据在表中

@blue.route('/pages/')
def pages():
  # 默认进入这个视图函数 第一页并只显示5条数据
page = request.args.get('page',1,type=int)
per_page = request.args.get('per_page',5,type=int) # 返回列表 如[1, 2, 3, 4]
pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page) # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列 # 返回当前页的所有数据
persons = pagination.items
  
return render_template('per.html',pagination=pagination,persons=persons)
# per.html

    {% for person in persons %}
id:{{ person.p_id }}<br>
字段:{{ person.p_str }}<br>
随机号码:{{ person.p_int }}<br><br>
{% endfor %} <hr>
<!--------------第一页--------------------->
<a href="{{ url_for('base.pages') }}">第一页</a>
    
  # 通过 has_prev 判断是否能上一页,不能则 url 为 #

{% if pagination.has_prev %}
<a href="{{ url_for('base.pages') }}?page={{ pagination.prev_num }}">上一页</a>
{% else %}
<a href="#">上一页</a>
{% endif %} <!--------------页码列表--------------------->
{% for page in pagination.iter_pages() %}
{% if page %}
<!--------------当列表中的页码不等于 当前的页数 生成其他页码数(url)--------------------->
{% if page != pagination.page %}
<a href="{{ url_for('base.pages') }}?page={{ page }}">{{ page }}</a>
{% else %}
<a href="#">{{ page }}</a>
{% endif %}
{% endif %}
{% endfor %}
  
  
  # 通过 has_next 判断是否能上一页,不能则 url 为 #
    {% if pagination.has_next %}
<a href="{{ url_for('base.pages') }}?page={{ pagination.next_num }}">下一页</a>
{% else %}
<a href="#">上一页</a>
{% endif %} <!--------------最后一页--------------------->
<a href="{{ url_for('base.pages') }}?page={{ pagination.pages }}">最后一页</a> <hr> 当前页面 {{ pagination.page }}
总页数 {{ pagination.pages }}
总数据 {{ pagination.total }}

显示




其中一些方法的知识点

paginate.page 当前页数
paginate.pages 总页数
paginate.total 数据总条数
paginate.has_prev 是否存在上一页 是则返回trun
paginate.iter_pages() 所有页码    返回列表 如[1, 2, 3, 4]  可在html模板中迭代得到页码数
paginate(page, per_page,error_out).items  返回当前页的所有数据  在html中循环迭代得到其中数据 如下
{% for person in paginate.items %}
        id:{{ person.p_id }}<br>
字段:{{ person.p_str }}<br>
随机号码:{{ person.p_int }}<br><br>
{% endfor %}


简化视图函数和html模板

@blue.route('/pages/')
def pages(): page = request.args.get('page',1,type=int)
per_page = request.args.get('per_page',5,type=int) # 返回列表 如[1, 2, 3, 4]
pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page) # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列 # 返回当前页的所有数据
persons = pagination.items   # 不需要直接使用paginate在html模板中items循环
# return render_template('per.html',pagination=pagination,persons=persons) # 简化 在html页面中paginate.items 可以for循环迭代的到实例汇总的数据
return render_template('per.html', pagination=pagination)
{% for person in pagination.items %}
id:{{ person.p_id }}<br>
字段:{{ person.p_str }}<br>
随机号码:{{ person.p_int }}<br><br>
{% endfor %}

flask 分页数据显示的更多相关文章

  1. Flask分页

    一.flask实现的分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): "&quo ...

  2. jQuery+Ajax+PHP实现异步分页数据显示

    这几天做毕业设计的时候需要使用到一个异步分页的功能,即翻页的时候只是刷新分页的数据而不是刷新整个页面.因为之前做项目的时候没有做过这方面的功能,所以还是纠结了挺长时间的,在网上也找了很多资料,结合自己 ...

  3. flask 分页

    在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页. @app.route('/',methods=['GET']) @app.route( ...

  4. Flask 分页的简单用法 / flask_sqlalchemy /无刷新翻转页面(原创)

    flask_sqlalchemy对象提供分页方法 1. 后台views代码: from models import <table_name> #导入model的对象 @app.route( ...

  5. JSP页面动态查询添加数据与分页数据显示

    1 . <%@ page language="java" contentType="text/html; charset=UTF-8"%> < ...

  6. [flask]分页显示列表

    添加分页支持的视图函数 app.py @app.route('/search') def search(): page = request.args.get('page', 1, type=int) ...

  7. flask分页功能:基于flask-sqlalchemy和jinja2

    先看源码: @app.route('/movie', methods=['GET', 'POST']) @app.route('/home', methods=['GET', 'POST']) @ap ...

  8. Flask系列(五)Flask实现分页

    一.flask分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): ""& ...

  9. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...

随机推荐

  1. Leetcode14._最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

  2. Qt QThread必须要了解的几个函数

    概述 如果想对Qt中的QThread有个更加深刻的了解,必须要知道这几个重要的函数,现在就一一介绍下. 函数介绍 属性 返回值 函数体 功能 static QThread * QThread::cur ...

  3. [LC] 150. Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  4. Android开发之《制作自己的su文件》

    目录结构  ─ hello ├── jni ├── Android.mk └── hello.c 编译步骤: # cd hello # export NDK_PROJECT_PATH=`pwd` # ...

  5. 三步教你实现MyEclipse的debug远程调试

    MyEclipse远程调试程序是个神奇的东西,有时一个项目本地运行没问题可放到服务器上,同样的条件就是结果不一样:有时服务器上工程出点问题需要远程调测.于是就灰常想看一下程序在远程运行时候的状态,希望 ...

  6. 吴裕雄--天生自然 R语言开发学习:导入数据

    2.3.6 导入 SPSS 数据 IBM SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc 包中的spss.get()函数.函数spss.get() ...

  7. Mac-常用命令与快捷键

    阅读更多 1.1 brew 格式: brew install <software> brew uninstall <software> brew update <soft ...

  8. Ubuntu上搭建GPU服务器

    1.安装显卡驱动 2.安装CUDA 3.安装cuDNN 下载: 根据显卡类型以及操作系统,选定CUDA版本和语言设置,下载对应的显卡驱动. 驱动下载地址 安装 $ sudo ./NVIDIA-Linu ...

  9. js join()

    在本例中,我们将创建一个数组,然后把它的所有元素放入一个字符串: <script type="text/javascript"> var arr = new Array ...

  10. Android空包签名

    空包签名 搜狗.优亿等Android市场,上传应用需要提供一个与要上传的应用相同签名的空包.这个空包是相应官方市场提供的,下载好之后需要使用命令行进行签名.具命令如下: 1 jarsigner -ve ...