LoginSignup
3
5

More than 3 years have passed since last update.

Heroku、Flask、Python、Gitでアップロードする方法(その①)

Last updated at Posted at 2020-02-27

Heroku、Flask、Pythonについて、Progateやドットインストール、Qiita等でひととおり学習したので、まとめてみる

(1)作業ディレクトリを作成
(2)仮想環境を設定
(3)必要なフレームワークとWEBサーバーをインストール
(4)FlaskファイルをPythonで作成
(5)Flaskファイルを実行してみる
(6)Herokuにデプロイする
  ①Herokuにアカウント登録する
  ②HomebrewでHerokuをインストールする
  ③Gitを用意する
  ④Herokuにアプリを作成する
  ⑤ローカルアプリとHerokuアプリを紐つける

  ⑥Herokuへのデプロイに必要なファイルを作成する
  ⑦Herokuへデプロイする

(7)エラー対応
  ①heroku ps:scale web=1で正常になるケース
  ②heroku ps:scale web=1で正常にならないケース
(8)ファイルを更新する

(1)作業ディレクトリを作成

デスクトップ上でいつも作業してるので、今回もデスクトップ上にディレクトリを設置した。
まず、Macのターミナルを起動して、cd desktop と入力、次にmkdir myprojectと入力、これで、デスクトップ上に、ディレクトリmy-projectを作成。

(2)仮想環境を設定

次に ターミナルで、cd myproject とし、ディレクトリmy-project内に移動。
Pythonのvenvという仮想環境を提供する機能を使ってローカルに開発環境を設定する。
仮想環境は、python -m venv ●●●と設定。●●●は任意の名称で良いが、任意のサブディレクトリが作成され、サブディレクトリ内に仮想環境ファイルが作成される。ただし今回は、python -m venv . としてmyproject直下に仮想環境ファイルを作成した。サブディレクトリ下に仮想環境ファイルを作成すると、後述するHerokuへのデプロイ時になぜかエラーが発生したため、直下に作成した。

python3 -m venv .

その後、仮想環境を有効化するために以下のように入力する。

source bin/activate

ちなみに仮想環境を無効化する場合は、以下のように入力する。

deactivate

(3)必要なフレームワークとWEBサーバーをインストール

次に、フレームワークをインストールする。

pip install flask

それと、WEBサーバーをインストールする。

pip install gunicorn

(4)FlaskファイルをPythonで作成

有効化した仮想環境上で、以下のように入力してmy-project内に実行ファイルを作成。今回はhello.pyというファイルを作成。

touch hello.py

次にhello.pyを開き、以下のように入力する。
なお、app.run()はこのままだとapp.run(debug=false)となり、デバックモードはオフの状態。本番環境ではdebug=trueとすると危険ぽいのでデフォルトのままとした。
詳しくは以下を参考にした。
https://www.subarunari.com/entry/2018/03/10/いまさらながら_Flask_についてまとめる_〜Debugger〜

hello.py
# -*- coding: utf-8 -*-
# 日本語を使う場合にコメントアウトでも必要

# flaskなどの必要なライブラリをインポート
from flask import Flask

# 自分の名称を app という名前でインスタンス化
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

#app.run()はデフォルトではfalseが設定されている
if __name__ == '__main__':
    app.run()

(5)Flaskファイルを実行してみる

再びターミナルで操作する。
作成したhello.pyがちゃんと動くかどうかローカル環境で試してみる。
ターミナルで以下を入力。

python3 hello.py flask run

すると、以下のように表示される。

* Serving Flask app "hello" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - 

ブラウザで、上記の部分の http://127.0.0.1:5000/ にアクセスすると、以下のように表示される。スクリーンショット 2020-02-26 22.38.02.png

これでローカル環境では正常に動くことが確認できた。
control + c でターミナル入力モードに戻る。

Heroku、Flask、Python、Gitでアップロードする方法(その②)

3
5
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
3
5