内容简介:总记一些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查询
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java编程思想
埃克尔 / 机械工业出版社 / 2007-5-1 / 79.00元
《Java编程思想(英文版•第4版)》内容简介:特色:1.适合初学者与专业人员的经典的面向对象的叙述方式;为更新的Java SE5/6的相关内容增加了新的示例和章节。2.测验框架显示程序输出。3.设计模式贯穿于众多示例中:适配器、桥接器、职责链、命令、装饰器、外观、工厂方法、享元、点名、数据传输对象、空对象、代理、单例、状态、策略、模板方法以及访问者。4.为数据传输引入了XML;为用户界面引入了S......一起来看看 《Java编程思想》 这本书的介绍吧!