デフォルトにあいまい検索を取り入れることで複雑なif分岐をできるだけなくし、コードをすっきりさせる。コードの可読性は若干落ちるが、複雑な検索式の組み合わせをifを多用して作ると長大でredundantなコードになってしまい、混乱の元になる。
if form.name.data: sample = sample.filter(Test.samp.like(form.name.data)) if form.gene.data: sample = sample.filter(Test.gene.like(form.gene.data)) if form.count.data: sample = sample.filter(Test.count<=form.count.data)
このあたりも
sample = session.query(Test).filter(Test.samp.like(form.name.data)).filter(Test.gene.like(form.gene.data)).filter(Test.count<=form.count.data)
と一行にしてしまって、代わりにデフォルト値を
class TestForm(FlaskForm): name = StringField('Sample name:', default='%%') gene = StringField('Gene name:', default='%%') count = IntegerField('count cut-off:', default=15)
と設定してしまう。