sqlalchemy 中 .filter() 和 .where() 之间的区别

Dav*_*542 8 python sqlalchemy

我见过使用 SQLAlchemy 运行查询的一些变体。例如,这是一个版本:

posts = db.query(models.Post).filter(models.Post.owner_id==user.id).all()
Run Code Online (Sandbox Code Playgroud)

使用上述或使用有什么区别.where?为什么这里有两种变化?

mkr*_*er1 21

根据文档,没有区别。

方法sqlalchemy.orm.Query.where(*criterion)

的同义词Query.filter()。

它是通过此提交添加到版本 1.4 中的。根据提交消息,添加它的原因是为了将剩余的 ORM API 转换为支持 2.0 风格。

您可以在这里阅读有关“2.0风格”的更多信息。