SQLAlchemy中filter和filter_by的区别

SQLAlchemy的query提供了filter和filter_by这两个方法可以使用。

从字面上看,根本不知道这两个有什么关系,十分折腾。

看了一下代码,区别大约是这样的:

filter接受字符串的参数,例如.filter('id=1'),而filter_by接受k=v的参数,例如.filter_by(id=1)。

这样如果是SELECT * FROM `user` WHERE name='zhetenga.com',则可以写成:

1. session.query(user).filter_by(name='zhetenga.com')

2. session.query(user).filter("name='zhetenga.com'")

2012年12月28日