不确定之前是否有人问过,但在SQLAlchemy的文档中,他们谈论了将select()
引入作为ORM的新2.0样式
的一部分。
之前(1.x样式
),使用query()
方法获取数据。
这两者之间有什么区别?
例如,对于查询带有电子邮件和姓名的Users
表中的用户,我们可以在Query API中执行以下操作:
session.query(Users).filter_by(name='name', email='mail@example.com').first()
在 Select API 中,这会导致更多的代码:
from sqlalchemy import select
query = select(Users).filter_by(name='name', email='mail@example.com')
user = session.execute(query).fetchone()
相比较而言,它们之间是否有明显的优势,例如性能提升? 2.0 API仍在积极开发中,但似乎它们的文档更倾向于选用API,而非“传统”的查询API。这是试图弥合ORM和核心功能之间的差距吗?