内容简介:总记一些SQLAlchemy常用的查询使用了flask框架,下面是模型的定义这是一个记录s3备份数据的表
总记一些SQLAlchemy常用的查询
使用了flask框架,下面是模型的定义
这是一个记录s3备份数据的表
class S3MysqlBak(db.Model): __tablename__ = "s3mysqlbak" id = db.Column(db.Integer, primary_key=True) # project_name = db.Column(db.String(100)) # 项目名 bak_time = db.Column(db.String(30)) # 备份时间 bak_size = db.Column(db.BigInteger) # 备份大小 bak_name = db.Column(db.String(30)) # 备份文件名 def __repr__(self): return "<S3MysqlBak %r>" % self.project_name
简单查询表的指定列
def get_s3backup(): s3_bak_list = db.session.query(S3MysqlBak.bak_name, S3MysqlBak.bak_size).all() print(s3_bak_list) for v in s3_bak_list: print(v)
简单查询所有列
def get_s3backup(): s3_bak_list = S3MysqlBak.query.all() for v in s3_bak_list: print(v.bak_name, v.bak_size, v.bak_time, v.id, v.project_name)
查询备份日期大于2018-12-06的备份,并且备份大小大于0的记录,多个条件用逗号隔开,多个条件是且的关系这里定义一个函数
# -*- coding:utf-8 -*- from app import db from app.models import S3MysqlBak,CosMysqlBak, Backupconfig def get_s3backup(): s3_bak_list = S3MysqlBak.query.filter( S3MysqlBak.bak_time > '2018-12-06', S3MysqlBak.bak_size > 0 ).all() print(s3_bak_list) print(type(s3_bak_list)) for v in s3_bak_list: print(v.bak_name, v.bak_size, v.bak_time, v.id, v.metadata, v.project_name)
使用 mysql 中的limit语句
def get_s3backup(): s3_bak_list = S3MysqlBak.query.order_by( S3MysqlBak.id.desc() ).paginate(page=1, per_page=20) print(s3_bak_list) for v in s3_bak_list.items: print(v) print(v.bak_name, v.bak_size, v.bak_time, v.id, v.metadata, v.project_name)
上面函数中的all() 和paginate() 是执行器
filter() 和filter_by()是过滤器,必须有执行器才能执行sql
常用的SQLAlchemy查询过滤器
过滤器 说明
filter() 把过滤器添加到原查询上,返回一个新查询
filter_by() 把等值过滤器添加到原查询上,返回一个新查询
limit 使用指定的值限定原查询返回的结果
offset() 偏移原查询返回的结果,返回一个新查询
order_by() 根据指定条件对原查询结果进行排序,返回一个新查询
group_by() 根据指定条件对原查询结果进行分组,返回一个新查询
常用的SQLAlchemy查询执行器
方法 说明
all() 以列表形式返回查询的所有结果
first() 返回查询的第一个结果,如果未查到,返回None
first_or_404() 返回查询的第一个结果,如果未查到,返回404
get() 返回指定主键对应的行,如不存在,返回None
get_or_404() 返回指定主键对应的行,如不存在,返回404
count() 返回查询结果的数量
paginate() 返回一个Paginate对象,它包含指定范围内的结果
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Mybatis关联查询(嵌套查询)
- MySQL高级查询---连接查询实例
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
- Laravel Query Builder 复杂查询案例:子查询实现分区查询 partition by
- 打造出色查询:如何优化SQL查询?
- SQL优化-慢查询+explain查询
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法分析导论
(美)Robert Sedgewick、(法)Philippe Flajolet / 冯舜玺、李学武、裴伟东、等其他 / 机械工业出版社 / 2006-4 / 38.00元
本书阐述了用于算法数学分析的主要方法,所涉及的材料来自经典数学课题,包括离散数学、初等实分析、组合数学,以及来自经典的计算机科学课题,包括算法和数据结构,本书内容集中覆盖基础、重要和有趣的算法,前面侧重数学,后面集中讨论算法分析的应用,重点的算法分的的数学方法。每章包含大量习题以及参考文献,使读者可以更深入地理解书中的内容。 本书适合作为高等院校数学、计算机科学以及相关专业的本科生和研究生的......一起来看看 《算法分析导论》 这本书的介绍吧!