自学内容网 自学内容网

SQLAlchemy 查询,多条件的查询需求,根据传入条件的实际情况,决定将哪些条件作为filter条件进行查询

多个条件的查询,使用 SQLAlchemy 的查询构建器来动态地构建查询,根据传入的条件参数(condition1condition2condition3 等)来决定是否将这些条件添加到查询中

class Order(Base):  
    __tablename__ = 'orders'  
    id = Column(Integer, primary_key=True)  
    item1= Column(String)  
    item2= Column(String)  
    item3= Column(String)

根据传入条件的实际情况,决定将哪些条件作为filter条件进行查询

def get_data_all(session, id, condition1=None, condition2=None, condition3=None):  
    # 初始化一个空的条件列表  
    conditions = []  
      
    # 如果有id条件,总是加入  
    conditions.append(Order.id == id)  
      
    # 如果有其他条件,并且条件值不为None,则加入到条件列表中  
    if condition1 is not None:  
        conditions.append(Order.item1== condition1)  
    if condition2 is not None:  
        conditions.append(Order.item2== condition2)  
    if condition3 is not None:  
        conditions.append(Order.item3== condition3)  
      
    # 使用and_函数将所有条件组合起来  
    if conditions:  
        query = session.query(Order).filter(and_(*conditions))  
    else:  
        # 如果没有任何条件(除了id),则只根据id查询  
        query = session.query(Order).filter(Order.id == id)  
      
    return query.all()  

 


原文地址:https://blog.csdn.net/yuxuan89814/article/details/142561714

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!