filter:

  session.query(MyClass).filter(MyClass.name == 'some name')

filter_by:

  session.query(MyClass).filter_by(name = 'some name')

filter用类名.属性名,比较用==,filter_by直接用属性名,比较用=

最重要的区别是filter不支持组合查询,只能连续调用filter来变相实现。
而filter_by的参数是**kwargs,直接支持组合查询。

05-17 11:52