Flask の環境構築とプロジェクト設計
概要#
Flask アプリケーションを構築する際の環境構築(Poetry を用いた依存関係管理)、Application Factory パターンによる拡張性の高いプロジェクト初期化、および推奨ディレクトリ構成についてのまとめ。
参考ブログ記事#
1. Poetry による環境構築#
初期セットアップ#
仮想環境とパッケージ管理のポイント#
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ここに掲載する記事はまだありません。
