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に移行する。

試してみる — Requirements ↔ Pyproject

フルツールを開く