Difference between filter and filter_by in SQLAlchemy

python, sqlalchemy

Solution

`filter_by` is used for simple queries on the column names using regular kwargs, like

`db.users.filter_by(name='Joe')`

The same can be accomplished with `filter`, not using kwargs, but instead using the '==' equality operator, which has been overloaded on the db.users.name object:

`db.users.filter(db.users.name=='Joe')`

You can also write more powerful queries using `filter`, such as expressions like:

`db.users.filter(or_(db.users.name=='Ryan', db.users.country=='England'))`

Problem

Could anyone explain the difference between `filter` and `filter_by` functions in SQLAlchemy? Which one should I be using?

Original source

Related problems