sqlalchemy 筛选
示例
给定以下模型
class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(Text, nullable=False) birthday = Column(Date)
您可以过滤查询中的列:
import datetime as dt session.query(User).filter(User.name == 'Bob') session.query(User).filter(User.birthday < dt.date(2000, 1, 1))
对于第一种情况,有一个快捷方式:
session.query(User).filter_by(name='Bob')
可以使用AND关系通过链接filter方法来构成过滤器:
(session.query(User).filter(User.name.like('B%')) .filter(User.birthday < dt.date(2000, 1, 1)))
或更灵活地使用重载按位运算符&和|:
session.query(User).filter((User.name == 'Bob') | (User.name == 'George'))
不要忘记内括号来处理运算符优先级。