Flaskプロジェクトの依存関係の変換
FlaskウェブアプリケーションのrequirementsをpyprojectTomlに変換する完全な例。エクステンション、SQLAlchemy、Marshmallow、API依存関係を含みます。
Real-World Projects
詳細な説明
Flaskプロジェクトはデータベースアクセス、シリアライゼーション、認証、APIドキュメントなどの機能にエクステンションを使用するため、Djangoよりモジュラーな傾向があります。
Flask requirements.txt:
flask>=3.0
flask-cors>=4.0
flask-migrate>=4.0
# データベース & ORM
sqlalchemy[asyncio]>=2.0
flask-sqlalchemy>=3.1
# シリアライゼーション
marshmallow>=3.20
flask-marshmallow>=1.2
# ユーティリティ
python-dotenv>=1.0
pyproject.tomlに変換:
[project]
name = "my-flask-api"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = [
"flask>=3.0",
"flask-cors>=4.0",
"flask-migrate>=4.0",
"sqlalchemy[asyncio]>=2.0",
"flask-sqlalchemy>=3.1",
"marshmallow>=3.20",
"flask-marshmallow>=1.2",
"python-dotenv>=1.0",
]
Flask固有の考慮事項:
- Flaskエクステンションは命名規則(
flask-*)に従い、依存関係リストの可読性が高い - asyncio付きSQLAlchemyはextrasを使用:非同期セッションサポートのため
sqlalchemy[asyncio] - **
python-dotenv**はFlaskが存在すると自動的に読み込むため、コード変更不要
pyproject.tomlフォーマットの主な利点は、すべてのプロジェクト設定(メタデータ、依存関係、ツール設定)を1つのファイルにまとめられることです。
ユースケース
プロジェクト設定を統合しhatchなどの最新ビルドツールを有効にするために、Flask REST APIプロジェクトをrequirements.txtからpyproject.tomlに移行する。