flask-17 flask-sqlalchemy查询

查询记录

那么我们怎么从数据库中查询数据?为此,Flask-SQLAlchemy 在您的 Model 类上提供了 query 属性。当您访问它时,您会得到一个新的所有记录的查询对象。在使用 all() 或者 first() 发起查询之前可以使用方法 filter() 来过滤记录。如果您想要用主键查询的话,也可以使用 get()

一、查询 示例

1、查询所有:

模型类.query.all() 等价于 select * from user;

2、有条件的查询:

1)模型类.query.fillter_by(字段名 =值) 等价于 select * from user where 字段名=值;

2)模型类.query.fillter_by(字段名 =值).first() 等价于 select * from user where 字段名=值 limit 1;

1 、模型类.query.fillter_by与 模型类.query.fillter区别

模型类.query.fillter_by(字段名=值) 里面是布尔的条件 这个无法实现复杂查询
模型类.query.fillter(模型类.字段名==值) 里面是布尔的条件 【常用】

2、模型类.query.fillter(模型类.字段名==值使用

a)模型类.query.fillter(模型类.字段名==值) .all() 返回值 —>列表
b)模型类.query.fillter(模型类.字段名==值) .first() 返回值 —>对象

3)模型类.query.fillter(模型类.字段名.endswith(‘z’)).all() 等价于 select * from user where 字段名 like ‘%z’;

4)模型类.query.fillter(模型类.字段名.startswith(‘z’)).all() 等价于 select * from user where 字段名 like ‘z%’;

5)模型类.query.fillter(模型类.字段名.contains(‘z’)).all() 等价于 select * from user where 字段名 like ‘%z%’;

6)模型类.query.fillter(模型类.字段名.like(‘%z%’)).all() 等价于 select * from user where 字段名 like ‘%z%’;

7)模型类.query.fillter(模型类.字段名.in_([‘a’,’b’,’c’])).all() 等价于 select * from user where 字段名 in (‘a’,’b’,’c’);

8)模型类.query.fillter(模型类.字段名.between(开始,结束)).all() 等价于 select * from user where 字段名 between 开始 and 结束;

3、组合查询

需要导入

from sqlalchemy import or_, and_, not_

1)模型类.query.fillter(or_(模型类.字段名.like(‘z%’),模型类.字段名.contains(‘a’))).all() 等价于 select * from user where 字段名 like ‘z%’ or 字段名 like ‘%a%’;

2)模型类.query.fillter(and_(模型类.字段名.like(‘z%’),模型类.字段名 < ‘2021-12-12 00:00:00’)).all() 等价于 select * from user where 字段名 like ‘z%’ and 字段名 < ‘2021-12-12 00:00:00’;

修改 < 为 it

模型类.query.fillter(and_(模型类.字段名.like(‘z%’),模型类.字段名.lt( ‘2021-12-12 00:00:00’))).all() 等价于 select * from user where 字段名 like ‘z%’ and 字段名 < ‘2021-12-12 00:00:00’;

扩展

gt

= ge(gt equal)

Original: https://blog.csdn.net/legend818/article/details/121973705
Author: 春天的菠菜
Title: flask-17 flask-sqlalchemy查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/745177/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球