【備忘録】Flaskアプリ作成手順

Mac利用.Pythonイントール済み.2024年2月時点での情報です.

Flaskアプリの雛型の生成

◆仮想環境の作成と有効化

Pythonの組み込みモジュールであるvenvを使用して,新しい仮想環境を作成します.プロジェクトごとに依存関係を分離するためです.

ターミナルでプロジェクトのディレクトリに移動して以下のように.

python3 -m venv venv
source venv/bin/activate

◆Flaskのインストール

Flaskを仮想環境にインストールします.

前項に引き続き.

pip install Flask

◆アプリの構造

Flaskアプリの基本的なディレクトリ構造を作成します.

/myapp
    /static
    /templates
    app.py

◆基本的なアプリの設定

app.pyに基本的なFlaskアプリの設定を記述します.

  • ルーティングの設定:URLルートを関数にマッピングします.

  • ビュー関数の作成:各ルートで実行される関数を定義します.

基本例:

from flask import Flask
app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(debug=True)

HTMLファイルはtemplatesディレクトリ内に作成します.

ビューからレンダリングする例:

from flask import render_template

@app.route('/hello')
def hello():
    return render_template('hello.html')

CSSやJavaScriptなどの静的ファイルはstaticディレクトリに配置し,テンプレートからリンクします.

Herokuでのデプロイ

◆必要なファイルの準備

Herokuにデプロイするために必要なファイルは以下の通りです.

requirements.txt:アプリケーションで使用する外部ライブラリをリストアップします.下記コマンドで生成.

pip freeze > requirements.txt

Procfile:Herokuにアプリの実行方法を指示します.このファイルには以下のように記述しておきます.

web: gunicorn アプリ名:app

gunicornはPythonのWSGI HTTPサーバーで,Flaskアプリの実行によく使われます.

runtime.txt(任意):Pythonのバージョンを指定します.例えば,python-3.8.10のように記述します.

◆Heroku CLIのインストール

Heroku CLI (Command Line Interface) のインストールが必要です.Herokuの公式サイトからダウンロードし,インストールします.

◆Herokuにログイン

ターミナルで以下のコマンドを実行し,Herokuにログインします.

heroku login

◆Herokuアプリの作成

以下のコマンドで新しいHerokuアプリを作成します.

heroku create アプリ名

アプリ名は省略可能ですが,省略するとランダムな名前が割り当てられます.

◆Gitを使用したデプロイ

HerokuへのデプロイはGitを介して行われます.まだGitリポジトリを初期化していない場合は,アプリケーションのルートディレクトリで以下のコマンドを実行します.

git init heroku git:remote -a アプリ名

以下のコマンドを使って変更をコミットした後,Herokuにプッシュします.

git add . git commit -am "初回デプロイ"
git push heroku master

なお,不要なファイルをpushしないためには,.ignoreファイルを作成しておきます.例えば,以下のように記述します.

venv/
.zshrc
__pycache__

◆デプロイの確認

デプロイ後,heroku openコマンドを実行して,ブラウザでアプリが正しく動作しているかを確認できます.

記事に賛同してくださる方,なんらかの学びが得られたと感じてくださった方は,経済的に余裕のある範囲で投げ銭をいただければ幸いです.