フラスコSQLAlchemyの条件とどのように使用するか、またはクエリを結合します
http://www.cherishlau.site/2018/03/29/flask-sqlalchemy-use-or-and/
私はいくつかのフィルタに会ったとき、フラスコの開発と最近の研究管理システムは、フラスコSQLAlchemyの、フラスコSQLAlchemyのシンプルで使用に便利を使用してORMフレームワークデータベースは、基本的な使用方法は、上記の公式文書で見つけることができるが、問題。
どのようにORとAND FILTERフラスコSQLAlchemyの中では、クエリ内の様々な条件を組み合わせて使用するには?
時間との記述に関連する文書の検索が発見されていない場合、いくつかの試みの後、我々はそれが次のように書くことができますが見つかりました:
輸入関連のライブラリに最初にすべての
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import or_,and_
その後、フィルタを定義します。
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)+',%'), ) ) }
条件のセットごとに、条件と関係の数が存在するフィルタ条件グループ上記2つの関係またはがあります。
フィルタを定義した後照会することができます。
Task.query.filter(*task_filter).all()