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后面的条件既不报错,又不生效,很坑。