微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

flask ORM操作方法

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

过滤器 说明
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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐