在SQL Alchemy ORM上实现and、or和not查询

在SQL Alchemy ORM上实现and、or和not查询,orm,sqlalchemy,Orm,Sqlalchemy,我正在学习SQL炼金术,并使用ORM获取记录 但是,有些函数似乎是以另一种方式拉入记录所特有的,如sqlalchemy.和',sqlalchemy.或',等等 我想知道如何使用ORM,但仍然使用一些“或”子类,这样我就可以做这样的事情:给定一个ORM对象Person选择姓氏为“Smith”或“Lee”或“Bishop”的所有记录,但不包括年龄小于18岁的记录 只有在我不使用ORM的情况下才可以这样做吗?默认情况下,过滤器子句附加了和。因此,下面的代码可以做到这一点: from sqlalchem

我正在学习SQL炼金术,并使用ORM获取记录

但是,有些函数似乎是以另一种方式拉入记录所特有的,如
sqlalchemy.和',
sqlalchemy.或',等等

我想知道如何使用ORM,但仍然使用一些“或”子类,这样我就可以做这样的事情:给定一个ORM对象
Person
选择姓氏为“Smith”或“Lee”或“Bishop”的所有记录,但不包括年龄小于18岁的记录


只有在我不使用ORM的情况下才可以这样做吗?

默认情况下,
过滤器
子句附加了
。因此,下面的代码可以做到这一点:

from sqlalchemy import or_

qry = (session.query(Person).
    filter(or_(Person.LastName == 'Smith', Person.LastName == 'Lee', Person.LastName == 'Bishop')).
    filter(Person.age >= 18)
    )