在 SQLAlchemy 中,你可以使用各种类和方法来构建查询条件。一种常见的方法是使用 and_, or_, not_ 等逻辑操作符结合列对象的比较操作来构建条件。
假设你有一个 User 类,它有一个 name 和一个 age 属性,你可以这样构建查询条件:
python
复制
from sqlalchemy import create_engine, Column, Integer, String, and_, or_
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建引擎和会话
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()
# 构建查询条件
condition1 = User.name == 'Alice'
condition2 = User.age > 25
combined_condition = and_(condition1, condition2)
# 使用条件查询
results = session.query(User).filter(combined_condition).all()
在这个例子中,User.name == 'Alice' 和 User.age > 25 是两个单独的条件,它们分别表示 "用户的名字是 Alice" 和 "用户的年龄大于 25"。and_ 函数将它们组合成一个复合条件,表示 "用户的名字是 Alice 并且年龄大于 25"。然后,我们使用 filter 方法将这个复合条件应用到查询中。
同样地,你也可以使用 or_ 来构建 "或者" 条件,使用 not_ 来构建 "非" 条件。例如:
python
复制
# 构建 "或者" 条件
or_condition = or_(User.name == 'Bob', User.age < 30)
# 构建 "非" 条件
not_condition = not_(User.name == 'Charlie')