常用的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对象,它包含指定范围内的结果
 """
查询所有用户数据
User.query.all() 查询有多少个用户
User.query.count() 查询第1个用户
User.query.first()
User.query.get(1) # 根据id查询 查询id为4的用户[3种方式]
User.query.get(4)
User.query.filter_by(id=4).all() # 简单查询 使用关键字实参的形式来设置字段名
User.query.filter(User.id == 4).all() # 复杂查询 使用恒等式等其他形式来设置条件 查询名字结尾字符为g的所有用户[开始 / 包含]
User.query.filter(User.name.endswith("g")).all()
User.query.filter(User.name.startswith("w")).all()
User.query.filter(User.name.contains("n")).all()
User.query.filter(User.name.like("%n%g")).all() 模糊查询 查询名字和邮箱都以li开头的所有用户[2种方式]
User.query.filter(User.name.startswith("li"), User.email.startswith("li")).all() from sqlalchemy import and_
User.query.filter(and_(User.name.startswith("li"), User.email.startswith("li"))).all() 查询age是25 或者 `email`以`itheima.com`结尾的所有用户
from sqlalchemy import or_
User.query.filter(or_(User.age == 25, User.email.endswith("itheima.com"))).all() 查询名字不等于wang的所有用户[2种方式]
from sqlalchemy import not_
User.query.filter(not_(User.name == "wang")).all()
User.query.filter(User.name != "wang").all() 查询id为[1, 3, 5, 7, 9]的用户
User.query.filter(User.id.in_([1, 3, 5, 7, 9])).all() 所有用户先按年龄从小到大, 再按id从大到小排序, 取前5个
User.query.order_by(User.age, User.id.desc()).limit(5).all() 分页查询, 每页3个, 查询第2页的数据
pn = User.query.paginate(2, 3)
pn.items 获取该页的数据 pn.page 获取当前的页码 pn.pages 获取总页数
"""

最新文章

  1. HDU 2852 (树状数组+无序第K小)
  2. Hadoop学习14--Hadoop之一点点理解yarn
  3. 完全背包问题 POJ1384
  4. 对 JimmyZhang 老师的文章《项目代码风格要求》的一些个人观点
  5. Catching Fish[HDU1077]
  6. Swift与Objective-C的对比
  7. Golang,用map写个单词统计器
  8. Android中观察者模式的升入理解
  9. 使用dojo的tree
  10. Java 内省机制
  11. spring redis入门
  12. JavaScript中你所不知道的Object(一)
  13. Ocelot中文文档-Raft(实验功能不能用于生产环境)
  14. Ubuntu中的出现:主文件夹的内容跑在桌面显示解决方案。同时 vim编辑器的操作
  15. UVA127-"Accordian" Patience(模拟)
  16. web测试工具列表
  17. 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案
  18. 【Selenium-WebDriver自学】Selenium-IDE用户扩展(七)
  19. 安装mysql后必做的两件事
  20. SpringMVC 重定向

热门文章

  1. Palindromic Squares
  2. H5页面解决左右滑动问题
  3. webpack 使用配置文件
  4. 用 SDL2 处理精灵图
  5. SpringBoot启动的时候不去校验数据库连接配置是否正确
  6. Cardboard对像的公共方法与属性
  7. Codeforces - 466C - Number of Ways - 组合数学
  8. 51nod1270 【dp】
  9. sql server通过脚本进行数据库压缩全备份的方法
  10. python __builtins__ type类 (69)