12月からPythonを学び始めました。FlaskとSQLAlchemyを使ってアプリを作ろうとしています。

困ったのが、検索条件の組み立てです。ベタにやるとこんな感じになると思います。名前と苗字を検索条件に入れてユーザーを探すイメージです。

def search():
  firstname =''
  lastname = ''
  rs = session.Query(User)
  if firstname:
     rs = rs.filter(User.firstname==firstname)
  if lastname:
     rs = rs.filter(User.lastname==lastname)

これしか方法が無いなら諦めるのですが、例えば検索条件に入れた変数(この場合はfirstname,lastname)がNoneとか空文字だったらfilterを通しても無視されるような感じに出来たら良いなぁ...と。

ユーザーから与えられる複数のリクエストパラメータに対して、よりスマートに検索条件を組み立てる方法があればご教示頂けると幸いです。