SQLAlchemyのfilter()とfilter_by()の違い 大学生エンジニアの開発備忘録#1

close up photo of programming of codes開発備忘録
Photo by luis gomes on Pexels.com

pythonのORMであるSQLAlchemyを利用していると、filter関数とfilter_by関数が存在する。

今回はこれらの違いはについて調べてみた。

公式ドキュメントを読んでみると、どうやら条件を絞る時に、カラムの名前を使用する場合、filterだとモデル.カラム名で指定しないといけないが、filter_byだとカラム名のみで良いということらしい。

コードにすると

# filter()を使う場合
db_session.query(cls).\
    filter(cls.name=="apple")

# filter_by()を使う場合
db_session.query(cls).\
    filter_by(name = 'apple')

こんな感じでほとんど同じ効果だが、個人的に使う分にはfilter_by関数の方がコード量が少なくなるし、便利かなと感じた。

コメント

タイトルとURLをコピーしました