Flaskの学習のために、購入した食材の賞味(消費)期限を管理するアプリを作成しました。
http://43.207.31.69/
備忘録として、学習や記事をまとめます。
※コードの一部をGithubにて公開しています。
入門
基本的な使い方は、以下などの記事を参考。
HTMLファイルの共通化
extendsを使う。パーツ化はinclude。
ファイルの分割
コードの保守性を上げるために、機能ごとにファイルを分けたい。
以下に具体的なテンプレートをまとめた。
(1)pythonファイル
Blueprintを用いて分割する。
app.pyなどに、Blueprintの設定を集約するイメージ。
(2)データベース
以下を参考に、DBの設定を各ファイルでimportできるように。
※RuntimeError: Working outside of application context.
が出た場合、以下のサイトで解決。
instanceフォルダ
機密性の高い情報を格納する。
※.gitignoreへの追加は必要。
instanceフォルダ配下のファイルは、instance_relative_config=Trueで自動で読み込める。
# instance/config.pyを読み込む
app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile('config.py')
環境変数
.envファイルに設定するのが簡単。
- .envファイルは、環境変数を使うファイルの親にあればOK
- python-dotenvを使って読み込む
公開
PythonAnywhereを用いた。
アプリ1つまでなら、条件はあるが基本無料で使える。
2つ以上は有料なので、HerokuやAWSなどを検討。
AWSに移管。EC2 + Apache + WSGIの構成を採用した。
その他
デバッグモードをonにすると、pythonファイル中のprint()はターミナル上で確認できる。