flask sqlalchmey中fiter和filter_by的区别和使用

filter_by参数里面是用一个=号,而filter参数里面用两个==号。

1、filter_by实现and的效果:filter_by:参数是kwargs, 直接支持组合查询,括号内直接逗号分隔要and的条件(不能写 XX and XX )。
q = sess.query(IS).filter_by(node=node, password=password).all()
2、filter_by实现or的效果:
filter_by不能实现or的操作。
3、filter实现and的效果:连用filter(千万不能用and连接字,注意下面的“坑”的说明)。
q = sess.query(IS).filter(IS.node == node).filter(IS.password == password).all()
4、filter实现or的效果:
待学习!

坑,坑,坑

filter实现and的效果,只能连用filter,不能用and连接字,如下面的
q = sess.query(IS).filter(IS.node == node and IS.password == password).all()
对应的sql是
SELECT * FROM tb_is WHERE tb_is.node = %(node_1)s
and后面的条件既不报错,又不生效,很坑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值