↓ メインコンテンツへスキップ

Flask の環境構築とプロジェクト設計

概要
#

Flask アプリケーションを構築する際の環境構築(Poetry を用いた依存関係管理)、Application Factory パターンによる拡張性の高いプロジェクト初期化、および推奨ディレクトリ構成についてのまとめ。

参考ブログ記事
#


1. Poetry による環境構築
#

初期セットアップ
#

1poetry init
2poetry add flask
3poetry run flask --version

仮想環境とパッケージ管理のポイント
#

  • pyproject.toml による依存関係とバージョンの厳密管理
  • 開発用依存パッケージ(pytest, ruff 等)のグループ分割管理 (--group dev)

2. ディレクトリ構成(推奨パターン)
#

 1my_flask_app/
 2├── app/
 3│   ├── __init__.py          # create_app() (Application Factory)
 4│   ├── models/              # SQLAlchemy モデル定義
 5│   ├── views/               # Blueprint (ルーティング/コントローラ)
 6│   ├── templates/           # Jinja2 テンプレート
 7│   └── static/              # CSS / JS / 画像ファイル
 8├── config/                  # 環境別設定ファイル
 9├── tests/                   # Pytest テストスイート
10├── pyproject.toml
11└── wsgi.py                  # アプリケーションエントリポイント

3. Application Factory パターン
#

アプリケーションの初期化を create_app() 関数内にカプセル化することで、テスト時や本番環境で異なる設定を柔軟に適用できるようにする。

 1from flask import Flask
 2
 3def create_app(test_config=None):
 4    app = Flask(__name__, instance_relative_config=True)
 5
 6    if test_config is None:
 7        app.config.from_pyfile("config.py", silent=True)
 8    else:
 9        app.config.from_mapping(test_config)
10
11    # 拡張機能の初期化(DB, LoginManagerなど)
12    # Blueprint の登録
13
14    return app

ここに掲載する記事はまだありません。