cookiecutter-flask のベストプラクティスを極力活かして、アプリを育てる(追加・拡張する)方法を解説します。
概要
cookiecutter-flask を用いて生成した Flask アプリは、以下のような仕掛けにより、Twelve-Factor App の III.設定, V.ビルド、リリース、実行, X.開発/本番一致 に相当するベストプラクティスを適用・維持しやすくなっています。
- アプリは Docker コンテナとしてビルドおよび起動できる
- コンテナは developmentとproductionの区別をつけられる
- 区別は 環境変数の切り替えによりつけることができる
- 
環境変数の値は.envファイルによって指定できる
- 機密を含むであろう .envファイルは git に載せず、 ひな型である.env.exampleファイルをコピーして作成する
つまり、この図のような流れの取り扱いができるように配慮されているので・・・

メリットとしては、12 Factor App の対応項目が目指しているメリットが得られやすくなっています。
| 12 Factor App 対応項目 | 由来となる構成 | 
|---|---|
| III.設定 | .env ファイルを介した環境変数の注入により Configuration ができる | 
| V.ビルド、リリース、実行 | Configuration に応じて開発・運用環境の区別をつけることができる | 
| X.開発/本番一致 | 開発・運用環境の区別をつけるために、わざわざコードや実行環境を変える必要が無い | 
cookiecutter-flask の配布元ドキュメントの Features 欄には "Configuration in environment variables, as per The Twelve-Factor App" と書かれていますので、少なくとも III.設定 は明に狙っているところでしょう。
以降は、これらのメリットを活かしながらアプリ固有の拡張・設定をする例を紹介します。
- 環境変数の育て方
- コンテナの育て方