0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:FastAPIに合うORMはどれ?特徴と選び方をざっくりまとめてみた

Posted at

はじめに

PythonでWeb APIを開発する際に注目されているFastAPIは、軽量かつ高速なフレームワークとして知られています。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

本記事では、FastAPIと一緒に使用できるORM(Object Relational Mapping)ライブラリについて整理します。

書こうと思ったきっかけ

FastAPIでAPI開発をしている中で、どのORMを選ぶべきか悩む場面がありました...。

公式ドキュメントにも複数の選択肢があるため、それぞれの特徴を整理して比較したいと思ったのがきっかけです。

FastAPIとORMライブラリの関係について

プログラミング言語には、データベース操作を効率化するためのORM(Object Relational Mapping)ライブラリがいくつか用意されています。中にはWebフレームワークに内包されているものもあり、選択するフレームワークによって使用するORMがある程度決まっているケースもあります。

以下は代表的なORMライブラリの一例です。

ORM 言語 Webフレームワーク
SQLAlchemy Python FastAPI など
DjangoORM Python Django

FastAPI は Python の Web フレームワークのひとつですが、Djangoのように特定のORMを内包しているわけではありません。そのため、FastAPIでは開発者が自由に ORM を選択することができます。中でも最も一般的なのが SQLAlchemy で、FastAPIの公式ドキュメントでも推奨されています。

FastAPIにおすすめのORMライブラリ

FastAPIで使用するのにおすすめのORMを紹介します。

SQLAlchemy(+ Alembic)

  • 特徴:高機能で柔軟性が高く、業務開発でも広く使われている。
  • メリット:
    • ドキュメントが豊富。
    • Alembicと組み合わせることでマイグレーション管理も可能。
  • デメリット:
    • 初期設定がやや複雑。
    • 学習コストが少し高い。

FastAPI公式ドキュメントでもSQLAlchemyの使用が推奨されています(個人調べ)。

参考文献

Tortoise ORM

  • 特徴:Django ORMに似た直感的な書き方ができる非同期対応ORM。
  • メリット:
    • async/awaitベースの非同期処理に対応。
    • 軽量で扱いやすい。
  • デメリット:
    • 高度な機能や柔軟性はSQLAlchemyに劣る。
    • ドキュメントや事例が少ない。

参考文献

まとめ

FastAPIはORMを内包していない分、自由度が高く、プロジェクトの性質に応じてORMを選べる点が魅力です。

  • 業務向け・拡張性重視なら:SQLAlchemy + Alembic
  • 軽量・非同期重視なら:Tortoise ORM や Ormar

学習コストと開発目的のバランスを見ながら、自分に合ったORMに参考にしてみてください!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?