【備忘録】Flaskアプリ作成手順
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にアプリの実行方法を指示します.このファイルには以下のように記述しておきます.
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アプリを作成します.
アプリ名は省略可能ですが,省略するとランダムな名前が割り当てられます.
◆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コマンドを実行して,ブラウザでアプリが正しく動作しているかを確認できます.
記事に賛同してくださる方,なんらかの学びが得られたと感じてくださった方は,経済的に余裕のある範囲で投げ銭をいただければ幸いです.