こんにちは、データアナリストのたぬ(@tanuhack)です!
今回は、Flaskで作ったWebアプリ(Hello World)をHerokuにデプロイする方法を、自分がつまづいた点を踏まえながら『どのサイトよりも丁寧で優しく』を意識して紹介します。
- macOS High Sierra:10.13.6
- Python:3.6.6
- Flask:1.0.2
- Gunicorn:19.9.0
目次
ローカルで動作確認まで
ローカル環境(http://localhost:5000/)で動かないものは、基本的にHerokuにデプロイしても動きません。まずはローカルでも、ちゃんと動くものを作りましょう。
また、本番環境ではフォルダ単位でパッケージ管理をしていることが多いと思うので、venv
を使って、ローカル(Heroku_Flaskフォルダ)に仮想環境を構築してFlaskの開発を行います。
環境構築
STEP1:デスクトップに移動、Heroku用のフォルダを作る
STEP2:venvでPythonの仮想環境を作成し、実行フォルダに移動する
STEP3:仮想環境を有効化する
プロンプトの頭に環境名が表示されている間は、仮想環境が有効になっています。
仮想環境モードは
$ deactivate
で解除出来ます。[/aside]
STEP4:Flaskのインストール
STEP5:Gunicornのインストール
STEP6:PythonファイルとProcfileを作成する
app.pyに下のPythonプログラムをコピペします。
# -*- coding: utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello Heroku_Flask'
if __name__ == '__main__':
app.run()
Procfileに下のコードをコピペします。
web: gunicorn app:app --log-file=-
ローカルで実行
STEP1:app.pyを起動させる
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
STEP2:ローカルホストにアクセスして確認する
http://127.0.0.1:5000/ または http://localhost:5000/ にアクセスにして、『Hello Heroku_Flask』の文字列が表示されているか確認しましょう。ローカルで動かないと、オンラインじゃ動かないですからね。
ローカルでの実行モードを終了させたい場合は、ショートカットキーCTRL+Cで解除します。
Herokuにデプロイまで
Herokuのアカウント登録
STEP1:Herokuに登録する

5分くらいで終わります。
STEP2:CLIツールをインストール
コマンドラインからHeroku上での作業を行うことができるツールをインストールします。
Herokuにデプロイする
- app.py
- Procfile
- requirements.txtこれから作る
STEP1:requirements.txtを作成する
Flask==1.0.2
gunicorn==19.9.0
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
Werkzeug==0.15.2
STEP2:フォルダにgitを設定する
STEP3:すべてをadd
STEP4:コミット名をhello-heroku-flaskにする
STEP5:ターミナルからHerokuにログイン
STEP6:Herokuに対して『hello-heroku-flask1』という名前の新しいプロジェクトを作る
STEP7:Herokuのリモートリポジトリにプッシュ
STEP8:Herokuにデプロイ出来ているか確認する
ブラウザが開き、HerokuにデプロイしたFlaskアプリが表示されたら完成です\(^o^)/
Herokuの豆知識
アプリの更新
Herokuリポジトリへpushすることで、アプリが自動的に更新されます。
アプリの削除
アプリ名は
$ heroku apps:info
で確認出来ます。[/aside]