flask orm 操作方法

Posted on 2020-11-09 19:57  Heart丶Beat  阅读(146)  评论(0)    收藏  举报

数据库操作
常用的查询过滤器

过滤器 说明
filter() 把过滤器添加到原查询上,返回一个新查询

filter_by() 把等值过滤器添加到原查询上,返回一个新查询

limit() 使用指定的值限定原查询返回的结果

offset() 偏移原查询返回的结果,返回一个新查询

order_by() 根据指定条件对原查询结果进行排序,返回一个新查询

group_by() 根据指定条件对原查询结果进行分组,返回一个新查询

常用的查询结果方法

方法 说明
all() 以列表形式返回查询的所有结果

first() 返回查询的第一个结果,如果未查到,返回None

first_or_404() 返回查询的第一个结果,如果未查到,返回404

get() 返回指定主键对应的行,如不存在,返回None

get_or_404() 返回指定主键对应的行,如不存在,返回404

count() 返回查询结果的数量

paginate() 返回一个Paginate对象,它包含指定范围内的结果

例:

返回名字等于wang的所有人
User.query.filter_by(name='wang').all()

first()返回查询到的第一个对象
User.query.first()

all()返回查询到的所有对象
User.query.all()

filter模糊查询,返回名字结尾字符为g的所有数据。
User.query.filter(User.name.endswith('g')).all()

get():参数为主键,如果主键不存在没有返回内容
User.query.get()

逻辑非,返回名字不等于wang的所有数据
User.query.filter(User.name!='wang').all()

not_ 相当于取反
from sqlalchemy import not_
User.query.filter(not_(User.name=='chen')).all()

逻辑与,需要导入and,返回and()条件满足的所有数据from sqlalchemy import and_
User.query.filter(and_(User.name!='wang',User.email.endswith('163.com'))).all()

逻辑或,需要导入or_
from sqlalchemy import or_
User.query.filter(or_(User.name!='wang',User.email.endswith('163.com'))).all()

查询数据后删除
user = User.query.first()
db.session.delete(user)
db.session.commit()
User.query.all()

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3