query.get和query.filter_by(id = id)有什么区别?何时使用filter_by?

时间:2019-02-11 14:50:01

标签: python sqlalchemy

documentation中指出

  

get()的特殊之处在于它提供对拥有会话的身份映射的直接访问。

这在许多方面类似于query.filter_by(id == id)query.filter(ModelClass.id == id)(在其中我假定ModelClass.id是它的主键)。

在我看来,我总是会想使用query.get,因为它更快(因为不必执行SELECT)。为什么我要使用filter_by(id=id)

1 个答案:

答案 0 :(得分:0)

debug确实会在需要时执行logging.level.root=DEBUG,没有办法。但是,是的,.get足够聪明,可以在可能的情况下绕过数据库查询。

如果仅按SELECT进行过滤,则没有理由使用.get-这只是更一般的事情。