kuroの覚え書き

96の個人的覚え書き

検索式のコードを単純化

デフォルトにあいまい検索を取り入れることで複雑な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)

と設定してしまう。