SQLAlchemy()分页器paginate方法

Flask的数据分页示例

 

用法:

1,首先写数据获取的视图函数,就像这样:

# 首页
@blog_bp.route('/', endpoint='index')
def index():#获取页数page = request.args.get('page',1)paginate = Article.query.paginate(page=int(page),per_page=3)# articles = Article.query.all()# uname = request.cookies.get('uname')# print(uname)uname = session.get('uname')return render_template('index.html', paginate=paginate, uname=uname)

 

从请求的查询字符串(request.args)中获取,如果没有明确指定,则默认渲染第一页。page从get请求拿到的是字符串类型参数 type=int 保证参数无法转换成整数时,返回默认值。

为了显示某页中的记录,要把 all() 换成 Flask-SQLAlchemy 提供的 paginate() 方法。页 数是 paginate() 方法的第一个参数,也是唯一必需的参数。可选参数 per_page 用来指定 每页显示的记录数量;如果没有指定,则默认显示 20 个记录。另一个可选参数为 error_ out,当其设为 True 时(默认值),如果请求的页数超出了范围,则会返回 404 错误;如果 设为 False,页数超出范围时会返回一个空列表。

2,显示分页器:

paginate() 方法的返回值是一个 Pagination 类对象,这个类在 Flask-SQLAlchemy 中定义。 这个对象包含很多属性,用于在模板中生成分页链接,因此将其作为参数传入了模板。分页对象的属性简介如表所示。

    #paginate 属性:
    # print(paginate.pages) #总共能生成多少页
    # print(paginate.page) #当前页码数
    # print(paginate.has_next) #True
    # print(paginate.has_prev) #Flase
    # print(paginate.next_num) #获取下一页的页码数
    # print(paginate.prev_num) #获取上一页的页码数
    # print(paginate.items) #获当前页的对象 列表

对象方法:

接下来以 Jinja2 宏的形式实现的分页导航,

分页模板运用的bootstrap的分页视图(index.html):

    <nav aria-label="Page navigation"><ul class="pagination"><li {% if not paginate.has_prev %} class="disabled"{% endif  %}><a href="{{url_for('blog.index')}}?page={{paginate.prev_num}}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>{% for num in range(1,paginate.pages+1) %}<li {% if num == paginate.page %} class="active"{% endif  %}><a href="{{url_for('blog.index')}}?page={{num}}">{{num}}</a></li>{% endfor  %}<li {% if not paginate.has_next %} class="disabled"{% endif  %}><a href="{{url_for('blog.index')}}?page={{paginate.next_num}}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li></ul></nav>

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源中国 2014 年源创会年度计划

时光总是从敲代码的指尖不经意地滑过&#xff0c;转眼2014年已快过去一半&#xff0c;OSC依然心怀着最初的梦想。 源创会&#xff0c;oscer的线下快乐大本营&#xff0c;我们仍在继续...... 聆听技术大牛讲解最前沿的技术&#xff0c;和同道中人切磋IT秘籍&#xff0c;吃点心侃…

互联网金融行业申请评分卡(A卡)简介

文章目录前言基本概念1、信用违约风险的基本概念什么是信用违约风险&#xff1a;组成部分违约的主体个贷中常用的违约定义M0&#xff0c;M1&#xff0c;M2的定义2、申请评分卡的重要性和特性信贷场景中的评分卡申请评分卡的概念为什么要开发申请评分卡评分卡的特性 &#xff08…

Flask的csrf_token的用法

在flask当中&#xff0c;flask-wtf模块时携带csrf校验的&#xff0c;只是需要开启&#xff1b; 如果不开启校验就不需要校验&#xff0c;但是那样不安全。 Csrf是针对与post请求的跨域限制&#xff0c;get请求没有作用 csrf_token的开启 在flask中开启csrf保护 from flask_…

dotty编译器语法特性之一交叉类型,联合类型和文本单例类型

2019独角兽企业重金招聘Python工程师标准>>> ###翻译&#xff1a;http://dotty.epfl.ch/docs/reference/intersection-types.html #交叉类型 trait Resettable {def reset(): this.type } trait Growable[T] {def add(x: T): this.type } def f(x: Resettable &…

【转】Zookeeper 安装和配置

转自&#xff1a;http://coolxing.iteye.com/blog/1871009 Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍. 单机模式 1. 配置 点击这里下载zookeeper的安装包之后, 解压到合适目录. 进入zookeeper目录下的conf子目录, 创建z…

一分钟精通Flask-Bootstrap的使用

要想在程序中集成Bootstrap&#xff0c;显然要对模板做所有必要的改动。不过&#xff0c;更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展&#xff0c;简化集成的过程。 安装&#xff1a; Flask-Bootstrap 使用pip安装&#xff1a; pip install flask_bootstrap Fl…

linux生产环境下安装anaconda总结

前言&#xff1a; 工作中&#xff0c;常常要在新的linux生产服务器中安装自己的集成python环境&#xff0c;这种情况下有一点需要注意&#xff1a;不能覆盖生产服务器中的python环境&#xff08;也就是自己的python环境要和系统的python环境分开&#xff09;。一般情况下系统自…

FSF 称 DRM 被用于锁定、控制和监视用户

自由软件基金会正在督促美国政府废除DMCA中保护DRM的反规避条款。DMCA的1201条款禁止绕过DRM保护的内容和设备。 自由软件基金会的Donald Robertson在致函美国版权办公室的信&#xff08;PDF&#xff09;中指出&#xff0c;技术保护措施和数字限制管理&#xff08;即DRM&#x…

改数据库表结构类型两种方法

alter table user change password password varchar(128) not null; alter table user modify column password varchar(128) not null;

申请评分卡(A卡)的开发过程(1)

前言&#xff1a; 本篇文章上接《申请评分卡简介》&#xff0c;有需要的童鞋可以参考下&#xff1a;https://blog.csdn.net/qq_16633405/article/details/107744921 下面介绍下A卡的开发步骤。 开发过程 1、评分卡模型开发步骤&#xff1a; 1、立项&#xff1a;场景&#…

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-front

解决&#xff1a; E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend)&#xff0c;是否有其他进程正占用它&#xff1f; 方法&#xff1a; 重新启动虚拟机服务器 再在黑屏终端中重新尝试输入su…

聚类效果评估指标总结

前言 实际工作中经常会用到一些聚类算法对一些数据进行聚类处理&#xff0c;如何评估每次聚类效果的好坏&#xff1f;可选的方法有1、根据一些聚类效果的指标来评估&#xff1b;2、直接打点。今天就主要总结下这段时间了解的聚类效果评估指标。废话少说&#xff0c;直接上干货…

{%extends bootstrap/base.html%}的添加,使得其他block无法继承

仙说{%extends "bootstrap/base.html"%}用法&#xff1a; 在base.html中调用一次即可&#xff0c;并且 {%extends "bootstrap/base.html"%} 要放在 最后头&#xff01;&#xff01;最后头&#xff01;最后头&#xff01; base中不用再添加 {% block cont…

运用Nginx代理和UWSGI将Flask项目部署在Linux中 详细步骤

nginx: 安装可以参照的路径: http://nginx.org/en/linux_packages.html#Ubuntu 启动Nginx nginx [ -c configpath] 默认配置目录&#xff1a;/etc/nginx/nginx.conf 查看进程&#xff1a; ps -ef |grep nginx 控制Nginx nginx -s xxxstop 快速关闭quit …

机器学习算法之KNN

前言 KNN一般用于有监督的分类场景&#xff0c;除此之外&#xff0c;KNN在异常检测场景中也有应用&#xff0c;下面主要介绍下KNN在这两面的应用原理。 KNN做分类的原理 计算步骤如下&#xff1a; 1&#xff09;算距离&#xff1a;给定测试对象&#xff0c;计算它与训练集中…

Supermap 组合单值专题图与标签专题图演示样例

效果图例如以下&#xff1a;单值专题图并显示每一个区域的相关文字信息 代码&#xff1a; <!DOCTYPE> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>单值专题图</title>…

[剑指Offer] 25.复杂链表的复制

1 /*2 struct RandomListNode {3 int label;4 struct RandomListNode *next, *random;5 RandomListNode(int x) :6 label(x), next(NULL), random(NULL) {7 }8 };9 */ 10 class Solution 11 { 12 public: 13 //在旧链表中创建新链表&#xff0…

Flask项目中应用七牛云存储

七牛云存储&#xff1a; https://developer.qiniu.com/kodo/sdk/1242/python 点击注册开通七牛开发者帐号 如果已有账号&#xff0c;直接登录七牛开发者后台&#xff0c;点击这里查看 Access Key 和 Secret Key pip install qiniu q Auth(Access Key,Secret Key) b…

异常检测算法之IForest

前言 IForest即孤立森林&#xff0c;可以用于做异常检测。一句话总结IForest做异常检测的原理&#xff1a;异常点密度小&#xff0c;基于树模型容易被一下切割出来&#xff0c;正常值密度大&#xff0c;需要切割多次才能得到目标值。 原理 iForest算法得益于随机森林的思想&…

用c#编写爬虫在marinetraffic下载船仅仅图片

近期在做船仅仅识别方面的事情&#xff0c;须要大量的正样本来训练adaboost分类器。于是到marinetraffic这个站点上下载船仅仅图片。写个爬虫来自己主动下载显然非常方便。 站点特点 在介绍爬虫之前首先了解一下marinetraffic这个站点的一些特点&#xff1a; 1. 会定期检測爬虫…