flask 分页数据显示
填充一些数据在表中

@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 分页数据显示的更多相关文章
- Flask分页
一.flask实现的分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): "&quo ...
- jQuery+Ajax+PHP实现异步分页数据显示
这几天做毕业设计的时候需要使用到一个异步分页的功能,即翻页的时候只是刷新分页的数据而不是刷新整个页面.因为之前做项目的时候没有做过这方面的功能,所以还是纠结了挺长时间的,在网上也找了很多资料,结合自己 ...
- flask 分页
在我们学习的过程中会遇到这么样的问题,就是在我们学习的过程中会发现需要分页处理,这里呢,给大家介绍书上说的分页. @app.route('/',methods=['GET']) @app.route( ...
- Flask 分页的简单用法 / flask_sqlalchemy /无刷新翻转页面(原创)
flask_sqlalchemy对象提供分页方法 1. 后台views代码: from models import <table_name> #导入model的对象 @app.route( ...
- JSP页面动态查询添加数据与分页数据显示
1 . <%@ page language="java" contentType="text/html; charset=UTF-8"%> < ...
- [flask]分页显示列表
添加分页支持的视图函数 app.py @app.route('/search') def search(): page = request.args.get('page', 1, type=int) ...
- flask分页功能:基于flask-sqlalchemy和jinja2
先看源码: @app.route('/movie', methods=['GET', 'POST']) @app.route('/home', methods=['GET', 'POST']) @ap ...
- Flask系列(五)Flask实现分页
一.flask分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): ""& ...
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...
随机推荐
- perf4j+logback配置 非spring 可使用注解
最近项目打算使用perf4j进行性能监控,由于项目没有使用spring,而又不想对代码入侵过高,打算使用注解的方式进行接入.perf4j采用AspectJ库实现AOP. 具体接入方法如下: logba ...
- Nginx笔记总结二十一:隐藏或者混淆nginx返回的Server信息
[root@localhost nginx-]# vi src/http/ngx_http_header_filter_module.c 修改:49-50行 static char ngx_http_ ...
- orcale 11g安装,创建表空间,用户,授权用户
一.卸载旧oracle 用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设 ...
- SSL_CTX结构体
/* 定义在ssl.h头文件中 */struct ssl_ctx_st { SSL_METHOD *method; unsigned long options; unsigned long mode; ...
- leetcode第32题:最长有效括号
关于括号匹配或生成的问题,首先想到的是栈. 本题易错点:返回值为连续有效()的长度, 即()(()这种情况下,返回值为2 # 去除字符串首的连续)和字符串尾得连续( while True: if no ...
- 解决跨域问题(CORS)
一.改变响应头部 请求代码如下: fetch("http://localhost:8888/young",{ method:"get" }).then(func ...
- php捕获致命错误
php捕获致命错误 记录php错误日志可以有力的帮我们查找问题.修复bug,php提供了set_error_handler.set_exception_handler来捕获错误和异常.但是set_er ...
- 吴裕雄--天生自然 PHP开发学习:本地PHPSTORM在线连接、编辑、上传文件到虚拟机,并在本地浏览器运行(前提是虚拟机与本机已桥连成功)
- MFC中文件对话框类CFileDialog详解及文件过滤器说明
当前位置 : 首页 » 文章分类 : 开发 » MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为 ...
- CSS 双飞翼布局
10 Jul 2016 » CSS 双飞翼布局:总共分三栏,左侧栏Left,中间主栏Main,右侧栏Right 第一步,建立三个div,不过注意,中间Main需要加一个wrap div. 整个结构看起 ...