zoukankan      html  css  js  c++  java
  • FLASK-SQLALCHEMY如何使用or和and条件进行组合查询

    FLASK-SQLALCHEMY如何使用or和and条件进行组合查询

    http://www.cherishlau.site/2018/03/29/flask-sqlalchemy-use-or-and/

    最近用Flask开发的一个工作管理系统,数据库使用的ORM 框架是Flask-SQLAlchemy,Flask-SQLAlchemy使用起来简洁方便,基本的使用在官方文档上面都可以查到,但我在用filter的时候遇到了一些问题。

    在FLASK-SQLALCHEMY 的FILTER中如何使用OR和AND来组合多种条件查询?

    查找文档的时候并没有找到相关的描述,后来经过多次尝试,发现可以这样写:

    首先要Import相关的库

    from flask_sqlalchemy import SQLAlchemy
    
    from sqlalchemy import or_,and_
    

    然后定义filter:

    task_filter = {
      or_(
       and_(
        Task.task_department == current_user.user_department,
        Task.task_commit_status > 0,
        Task.task_complete_time >= prev,
       ),
       and_(
        Task.task_complete_time >= prev,
        Task.task_members.like('%,'+str(current_user.user_id)+',%'),
       )
     )
    }
    

    上面这个filter中有两个条件组,关系为or,每个条件组里有一些and关系的条件。

    filter定义完之后就可以进行查询了:

    Task.query.filter(*task_filter).all()
  • 相关阅读:
    Go反射原理
    并发控制--context篇
    Go并发控制--WaitGroup篇
    Go依赖管理--module
    正睿培训 8.4 学习笔记
    bitset
    7.18 学习笔记
    7.17 学习笔记
    P6835 [Cnoi2020]线形生物
    UVA11300 Spreading the Wealth 思维题
  • 原文地址:https://www.cnblogs.com/shengs/p/12074737.html
Copyright © 2011-2022 走看看