目录
day04回顾
1.模型
使用名为SQLAlchemy的ORM框架,并且需要 Flask-SQLAlchemy
配置
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI']='mysql://username:pwd@host:port/dbname'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
- 定义模型
class MODELNAME(db.Model):
__tablename__ = 'TABLENAME'
COLUMN_NAME = db.Column(db.TYPE,OPTIONS)
...
1.FLASK-SQLALCHEMY - 查询
- 基于 db.session 进行查询
- db.session.query()
该函数会返回一个Query对象,类型为 BaseQuery,包含了指定实体类对应的表中所有的数据
该函数也可以接受多个参数,参数表示的是要查询哪个实体 - 查询执行函数
目的:在查询的基础上得到最终想要的结果
语法:db.session.query(...).查询执行函数()函数 说明 all() 以列表的方式返回查询的所有结果 first() 返回查询中的第一个结果,如果没有结果,则返回None first_or_404() 返回查询中的第一个结果,如果没有结果,则终止并返回404 count() 返回查询结果的数量 -
查询过滤器函数
作用:在查询的基础山,筛选部分列出来
语法:db.session.query(...).过滤器函数().查询执行函数()
函数 说明 filter() 指定条件进行过滤(多表,单表,定值,不定值...) filter_by() 按等值条件进行过滤 limit() 按限制行数获取 order_by() 根据指定条件进行排序 group_by 根据指定条件进行分组 详解:
-
filter()
-
查询年龄 大于30的 Users的信息
db.session.query(Users).filter(Users.age>30).all()
注意:条件必须由 模型类.属性 来组成 -
查询年龄 大于30且id大于5 的Users的信息
db.session.query(Users).filter(Users.age>30,Users.id>5).all() -
查询年龄 大于30或id大于5 的Users的信息
注意:查询 或 的操作,要借助 0r_()
db.session.query(Users).filter(or_(Users.age>30,Users.id>5)).all() -
查询id等于5的Users的信息
db.session.query(Users).filter(Users.id==5).first() -
查询email中包含‘w’ 的users的信息 - 模糊查询 like
db.session.query(Users).filter(Users.email.like('%w%')).all() -
查询id在 [1,2,3] 之间的Users 的信息
db.session.query(Users).filter(Users.id.in_([1,2,3])).all()
-
-
filter_by()
-
查询 id=5的Users的信息
db.session.query(Users).filter_by(id=5).first()
-
-
limit()
-
在
-
-
- db.session.query()