常用的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 获取总页数
"""
最新文章
- HDU 2852 (树状数组+无序第K小)
- Hadoop学习14--Hadoop之一点点理解yarn
- 完全背包问题 POJ1384
- 对 JimmyZhang 老师的文章《项目代码风格要求》的一些个人观点
- Catching Fish[HDU1077]
- Swift与Objective-C的对比
- Golang,用map写个单词统计器
- Android中观察者模式的升入理解
- 使用dojo的tree
- Java 内省机制
- spring redis入门
- JavaScript中你所不知道的Object(一)
- Ocelot中文文档-Raft(实验功能不能用于生产环境)
- Ubuntu中的出现:主文件夹的内容跑在桌面显示解决方案。同时 vim编辑器的操作
- UVA127-";Accordian"; Patience(模拟)
- web测试工具列表
- 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案
- 【Selenium-WebDriver自学】Selenium-IDE用户扩展(七)
- 安装mysql后必做的两件事
- SpringMVC 重定向
热门文章
- Palindromic Squares
- H5页面解决左右滑动问题
- webpack 使用配置文件
- 用 SDL2 处理精灵图
- SpringBoot启动的时候不去校验数据库连接配置是否正确
- Cardboard对像的公共方法与属性
- Codeforces - 466C - Number of Ways - 组合数学
- 51nod1270 【dp】
- sql server通过脚本进行数据库压缩全备份的方法
- python __builtins__ type类 (69)