day95:flask:SQLAlchemy数据库查询进阶&关联查询
目录
1.数据库查询-进阶
1.常用的SQLAlchemy查询过滤器
2.常用的SQLAlchemy查询结果的方法
3.filter
4.order_by
5.count
6.limit&offset
7.paginate
8.group_by
Tip:在flask中执行原生SQL语句
2.关联查询
1.常用的SQLAlchemy关系选项
2.一对一
3.一对多
4.多对多
1.数据库查询-进阶
1.常用的SQLAlchemy查询过滤器
| 过滤器 | 说明 |
|---|---|
| filter() | 把过滤器添加到原查询上,返回一个新查询 |
| filter_by() | 把等值过滤器添加到原查询上,返回一个新查询 |
| limit() | 使用指定的值限定原查询返回的结果 |
| offset() | 偏移原查询返回的结果,返回一个新查询 |
| order_by() | 根据指定条件对原查询结果进行排序,返回一个新查询 |
| group_by() | 根据指定条件对原查询结果进行分组,返回一个新查询 |
2.常用的SQLAlchemy查询结果的方法
| all() | 以列表形式返回查询的所有结果 |
| first() | 返回查询的第一个结果,如果未查到,返回None |
| first_or_404() | 返回查询的第一个结果,如果未查到,返回404 |
| get() | 返回指定主键对应的行,如不存在,返回None |
| get_or_404() | 返回指定主键对应的行,如不存在,返回404 |
| count() | 返回查询结果的数量 |
| paginate() | 返回一个Paginate分页器对象,它包含指定范围内的结果 |
| having | 返回结果中符合条件的数据,必须跟在group by后面,其他地方无法使用。 |
3.filter
1.filter设置判断条件
== != >= <= < >
student = Student.query.filter(Student.name=="xiaohui32号").first()
if student is None:
return jsonify({"error":"100404","errmsg":"没有该学生信息!"})

![day95:flask:SQLAlchemy数据库查询进阶&关联查询[Python基础]](https://www.zixueka.com/wp-content/uploads/2023/10/1696934198-b9d3f454ad33e3e.jpg)
