はじめに
この実験では、Flask アプリケーションをサーバーにデプロイする方法を学びます。アプリケーション用の配布ファイルを作成し、サーバーにインストールします。この実験では、Flask、Python の仮想環境、およびコマンド ラインに関する基本的な知識があることを前提としています。
注:コード ファイルは自分で作成し、環境で実行する必要があります。Web 5000 で Flask サービスの状態をプレビューできます。
アプリケーションの構築
まず、アプリケーション用の wheel ファイルを作成する必要があります。これにはbuildツールを使用します。まだインストールしていない場合は、pip を使ってbuildツールをインストールします:
## Install the build tool
pip install build
次に、buildツールを使って wheel ファイルを作成します:
## Build the wheel file
python -m build --wheel
wheel ファイルは、distディレクトリにflaskr-1.0.0-py3-none-any.whlのような名前であるはずです。
サーバーにアプリケーションをインストールする
wheel ファイルをサーバーにコピーします。サーバーにコピーしたら、新しい Python 仮想環境をセットアップし、pip を使って wheel ファイルをインストールします:
## Install the wheel file
pip install flaskr-1.0.0-py3-none-any.whl
これは新しい環境なので、データベースを再度初期化する必要があります:
## Initialize the database
flask --app flaskr init-db
シークレットキーの設定
本番環境では、シークレットキーをランダムな値に変更する必要があります。ランダムなシークレットキーを生成するには、次のコマンドを実行します:
## Generate a random secret key
python -c 'import secrets; print(secrets.token_hex())'
インスタンスフォルダにconfig.pyファイルを作成し、SECRET_KEYを生成した値に設定します。
#.venv/var/flaskr-instance/config.py
SECRET_KEY = 'your_generated_secret_key'
本番サーバーでアプリケーションを実行する
本番環境では、組み込みの開発サーバーの代わりに WSGI サーバーを使用する必要があります。私たちは Waitress を WSGI サーバーとして使用します。
まず、Waitress をインストールします:
## Install Waitress
pip install waitress
次に、Waitress にアプリケーションをサービスするように指示します:
## Run the application with Waitress
waitress-serve --call 'flaskr:create_app'
まとめ
この実験では、Flask アプリケーションを本番サーバーにデプロイする方法を学びました。アプリケーションを wheel ファイルにビルドし、サーバーにインストールし、シークレットキーを設定し、本番用の WSGI サーバーでアプリケーションを実行しました。