知识网2021年11月09日 17:15原创
filter和filter_by区别:
cls.query.filter(类名.属性名 条件操作符 条件) 过滤特定条件,返回的是query对象
cls.query.filter_by(关键字参数对) 单条件查询,条件必须关键字参数
filter方法的使用示例如下:
admins = Admin.query.filter(Admin.id==1)
print(admins)
打印出的结果是sql语句:
SELECT `admin`.id AS admin_id, `admin`.name AS admin_name, `admin`.pwd AS admin_pwd, `admin`.is_super AS admin_is_super, `admin`.role_id AS admin_role_id, `admin`.addtime AS admin_addtime
FROM `admin`
WHERE `admin`.id = %(id_1)s
admins = Admin.query.filter(Admin.id==1).all()
print(type(admins))
打印出的结果为:<class 'list'>
所以后面跟all()方法的查询语句返回值是一个列表
admins = Admin.query.filter(Admin.id==1).first()
print(type(admins))
打印出的结果为:<class 'app.models.Admin'>
所以后面跟first()方法的查询语句返回值是模型类Admin的实例对象
注意:表示相等的比较操作符是==,而且要明确的指出id是哪个模型类的字段
查询出id值大于90的所有用户
admins=Admin.query.filter(User.id>90).all()
filter的功能更强大,支持or_,in_,and_等语法。
filter_by方法的使用示例如下:
admins = Admin.query.filter_by(id=1)
print(admins)
打印出的结果是sql语句:
SELECT `admin`.id AS admin_id, `admin`.name AS admin_name, `admin`.pwd AS admin_pwd, `admin`.is_super AS admin_is_super, `admin`.role_id AS admin_role_id, `admin`.addtime AS admin_addtime
FROM `admin`
WHERE `admin`.id = %(id_1)s
admins = Admin.query.filter_by(id=1).all()
print(type(admins))
打印出的结果为:<class 'list'>
所以后面跟all()方法的查询语句返回值是一个列表
admins = Admin.query.filter_by(id=1).first()
print(type(admins))
打印出的结果为:<class 'app.models.Admin'>
所以后面跟first()方法的查询语句返回值是模型类Admin的实例对象
注意:filter_by接受的参数是关键字参数,只支持一般的列查询,不支持比较运算符
很赞哦!(8)
©芃睿知识网 版权所有 2012-2023 shsongjiang.com
版权申明:本站部分文章来自互联网,如有侵权,请联系邮箱xiajingzpy@163.com,我们会及时处理和回复!