我已经看到了一些使用 SQLAlchemy 运行查询的变体。例如,这是一个版本:
posts = db.query(models.Post).filter(models.Post.owner_id==user.id).all()
使用上述或使用有什么区别.where?为什么这里有两种变体?
.where
根据文档,没有区别。
方法sqlalchemy.orm.Query.where(*criterion) 的同义词Query.filter()。
方法sqlalchemy.orm.Query.where(*criterion)
sqlalchemy.orm.Query.where(*criterion)
的同义词Query.filter()。
Query.filter()
它是由这个提交在 1.4 版中添加的。根据提交消息,添加它的原因是为了将剩余的 ORM API 转换为支持 2.0 样式。
您可以在此处阅读有关“2.0 风格”的更多信息。