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":"没有该学生信息!"})