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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM