LoginSignup
1
1

More than 3 years have passed since last update.

Flask Practices #3, cookiecutter-flask ベースプロジェクトの育て方

Last updated at Posted at 2019-07-31

<<<前回 | 目次 | 次回>>>

cookiecutter-flask のベストプラクティスを極力活かして、アプリを育てる(追加・拡張する)方法を解説します。

概要

cookiecutter-flask を用いて生成した Flask アプリは、以下のような仕掛けにより、Twelve-Factor AppIII.設定, V.ビルド、リリース、実行, X.開発/本番一致 に相当するベストプラクティスを適用・維持しやすくなっています。

  • アプリは Docker コンテナとしてビルドおよび起動できる
  • コンテナは developmentproduction の区別をつけられる
  • 区別は 環境変数 の切り替えによりつけることができる
  • 環境変数 の値は .env ファイルによって指定できる
  • 機密を含むであろう .env ファイルは git に載せず、 ひな型である .env.example ファイルをコピーして作成する

つまり、この図のような流れの取り扱いができるように配慮されているので・・・
panels.png

メリットとしては、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.設定 は明に狙っているところでしょう。


以降は、これらのメリットを活かしながらアプリ固有の拡張・設定をする例を紹介します。

  1. 環境変数の育て方
  2. コンテナの育て方
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1