🐍

PythonのwebアプリFWについて簡単にまとめてみた🔥

2024/08/07に公開

Pythonの人気webフレームワーク

主に使われるのが以下3つ(スター数などの数値は2024年8月3日調べ)

FW名 スター数 初回コミット コントリビューター数 fork数
Django 78.3K 2005年 2560 31.3K
Flask 67.2K 2010年 718 16.1K
FastAPI 74.2K 2018年 684 6.2K

Django

強み

  • 歴史のあるFWで、学習リソースやコミュニティが他のFWより大きい。(=何か困った時にサポートしてくれるリソースが多い)
  • フルスタックフレームワーク : ORM、認証、テンプレートエンジン、ルーティング、セキュリティなどが標準で提供される

弱み

  • 柔軟性の制限: フレームワークの構造に従う必要があり、自由度が低いと感じることがある。

Flask

強み

  • 学習曲線が緩やか: シンプルで直感的なため、初心者にも扱いやすい。

弱み

  • マイクロフレームワークで多くの機能を自分で設定・追加する必要があるため、大規模なプロジェクトでは労力がかかる。

FastAPI

強み

  • 型安全: Pydanticを使用した型注釈により、バグの発見が容易。
  • 自動的なドキュメント生成
  • 高速。非同期処理プログラミングも備わっている。

弱み

  • Djangoに比べると標準機能は少なく標準機能は少ない

感じたこと

  • fastAPIが最適解になるケース
    • 高速なパフォーマンスを求める時
    • ドキュメントを重視する時
    • 型安全な堅牢なアプリケーションを作る時
  • Djangoが最適解になるケース
    • フルスタックな標準機能を求める時
    • 言語に関するドキュメント・コミュニティの多さを求める時
  • Flaskが最適解になるケース
    • 言語の学習コストを抑えて開発したい時

Discussion