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开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...
随机推荐
- css - 原生变量及使用函数 var()
零.序言 前两天在逛 blog 的时候看见一些内联样式新奇的写法时很纳闷,虽然说不上多么熟练,但是从来没见过 --color: brown 这样的写法,百度一番之后仍然没啥头绪,今天偶然看到一篇文章 ...
- python3多进程爬虫(第一卷)
进程这个东西概念很多人很模糊,而多进程并发爬虫也算是爬虫几大难点,现在我先说下进程的基本使用: 开启一个python文件 函数sayhi就是一个进程而且是主进程 现在呢我想循环输出NAME,n 正常我 ...
- 题解:线性规划与网络流24题 T2 太空飞行计划问题
太空飞行计划问题 问题描述 W教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,-,Em},和进行这些实验需要 ...
- OSCache使用指南
OSCache是当前运用最广的缓存方案, JBoss Hibernate Spring 等都对其有支持,下面简单介绍一下OSCache的配置和使用过程. 1.安装过程 从http://www.open ...
- XML的四种解析器(dom_sax_jdom_dom4j)原理及性能比较[收藏]
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定 ...
- figure设置坐标轴
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-3,3,50) y1=x*2+1 y2=x**2 plt.plot( ...
- Face Recognition 人脸识别该如何测试
猪圈子,一个有个性的订阅号 01 测量人脸识别的主要性能指标有 1.误识率(False;Accept;Rate;FAR):这是将其他人误作指定人员的概率; 2.拒识率(False;RejectRate ...
- lvs/dr+keepalived搭建成功后,开启防火墙,虚拟IP不能访问,但是真实IP却可以访问
lvs/dr+keepalived搭建成功后,开启防火墙,虚拟IP不能访问,但是真实IP却可以访问,如果关闭防火墙虚拟IP就可以访问网站了,这个问题肯定是防火墙在作怪. 经过这两的不懈奋斗和大家的帮助 ...
- GCD实现多个定时器,完美避过NSTimer的三大缺陷(RunLoop、Thread、Leaks)
定时器在我们每个人做的iOS项目里面必不可少,如登录页面倒计时.支付期限倒计时等等,一般来说使用NSTimer创建定时器: + (NSTimer *)timerWithTimeInterval:(NS ...
- 多个计数器在Vuex中的状态
安装 安装vue-cli npm i -g vue-cli 生成目录 vue init webpack 启动开发环境 npm run dev 启动命令 npm install -g vue-cli v ...