flask中的分页器
paginate(): 分页查询,返回一个分页对象
paginate(参数1, 参数2, 参数3) :
参数1:当前是第几页(page)
参数2:每页显示几条信息(per_page)
参数3:error_out:error_out= False 的情况下不会抛出异常
如果error_out = True 则下面几种情况会抛出404异常:找不到项目,并且page不是 page小于1,或者per_page为负数 page或per_page不是整数 page大于总页数;
- @app.route('/booklist/', methods=['GET', 'POST'])
def book_list():
page = int(request.args.get('page', 1)) # 当前页数,request.args.get()方法获取页面的参数,如果没有获取到页码就默认为1
per_page = 3 # 每页数量
paginate = Book.query.paginate(page, per_page, error_out=False) # 创建分页器对象
return render_template('book_list_paginate.html', paginate= paginate)- 属性:
items : 表示获得的查询结果
pages : 表示一共有多少页
page :获得当前页码数
total :数据总条数
has_prev: 是否有上一页
has_next: 是否有下一页
prev_num:上一页页码
next_num:下一页页码
iter_page():当前页的页码列表
- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>books</title>
</head>
<body>
<h2>书籍信息</h2>
{% for b in paginate.items %}
编号:{{ b.id }}
书名:{{ b.name }}
<br>
{% endfor %}
总页数:{{ paginate.pages }}
数据总条数:{{ paginate.total }}
当前页数:{{ paginate.page }}
<a href="/booklist/?page=1">首页</a>
{% if paginate.has_prev %}
<a href="/booklist/?page={{ paginate.prev_num }}">上一页</a>
{% endif %}
{% if paginate.has_next %}
<a href="/booklist/?page={{ paginate.next_num }}">下一页</a>
{% endif %}
<a href="/booklist/?page={{paginate.pages}}">尾页</a>
页码:
{% for i in paginate.iter_pages() %}
<a href="/booklist/?page={{ i }}">{{ i }}</a>
{% endfor %}
</body>
</html>
flask中的分页器的更多相关文章
- FlASK中的endpoint问题
先贴一点有关的flask代码,时间有限,我慢慢扩充 以下是flask源码中app.py中add_url_rule的代码. 主要是view_func -- endpoint -- url 之间的对应关 ...
- Flask 中的 SQLAlchemy 使用教程
Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...
- Flask中路由模块的实现
在Flask中的路由功能主要通过修饰函数route实现,下面我们就来挖掘下route在源代码中是怎么分配视图函数的. def route(self, rule, **options): def dec ...
- Flask中全局变量的实现
我们都知道在Flask中g,request,session和request是作为全局对象来提供信息的,既然是全局的又如何保持线程安全呢,接下来我们就看看flask是如何做到这点的.在源码中的ctx.p ...
- python web开发-flask中日志的使用
Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...
- Flask中使用数据库连接池 DBUtils ——(4)
DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程 ...
- 第七篇 Flask 中路由系统以及参数
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- 第六篇 flask中session
Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 Flask 中 session 的使用 1. Flask 中 session 是 ...
- 第四篇flask中模板语言 jinja2
Flask中默认的模板语言是Jinja2 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT = {, 'gender': '中'}, STUDENT_LIST = [ {, 'gende ...
随机推荐
- Docker Compose 项目打包部署
Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...
- JavaScript(5)--- 面向对象 + 原型
面向对象 + 原型 面向对象这个概念并不陌生,如 C++.Java 都是面向对象语言.面向对象而言都会现有一个类的概念 ,先有类再有对象.类是实例的类型模板. 比如人类 是一个类 张三 李四 就是一个 ...
- 7-12 产生每位数字相同的n位数 (30 分)
读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA...A,一共B个A 输入格式: 在一行中输入A和B. 输出格式: 在一行中输出整数AA...A,一共B个 ...
- SPA那点事
前端猿一天不学习就没饭吃了,后端猿三天不学习仍旧有白米饭摆于桌前.IT行业的快速发展一直在推动着前端技术栈在不断地更新换代,前端的发展成了互联网时代的一个缩影.而单页面应用的发展给前端猿分了一杯羹. ...
- Spring Boot从入门到精通(七)集成Redis实现Session共享
单点登录(SSO)是指在多个应用系统中,登录用户只需要登录验证一次就可以访问所有相互信任的应用系统,Redis Session共享是实现单点登录的一种方式.本文是通过Spring Boot框架集成Re ...
- 测试 - 某网站ACCESS数据库注入漏洞
元宵节 团团圆圆总少不了一篇文 测试是否有注入 测试数据库类型 后面不用注释猜到可能是access 验证一下 这里说一下MySQL和ACCESS以及MSSQL的判断语句 MySQL:and len ...
- MySQL记录操作(多表查询)
准备 建表与数据准备 #建表 create table department( id int, name varchar(20) ); create table employee( id int pr ...
- 结巴分词demo
#encoding=utf-8 from __future__ import unicode_literals import sys sys.path.append("../") ...
- kubeasz部署高可用kubernetes1.17.2 并实现traefik2.1.2部署
模板机操作 # cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) # uname -a //内核升级到4.4.X以后, 关于如何 ...
- 数据结构 - List 接口
简介 List接口继承自Collection接口,是Collection三大延伸接口之一.List中的元素都是有序的,并且都支持用索引访问.同时List中的元素允许重复. public interfa ...