HOWTO · Flask
Flask アプリを実行する
Python 仮想環境をセットアップし、Flask をインストールして、小さな app.py アプリケーションを作成し、ローカルで実行します。
このページの内容
Flaskアプリを実行するには、Pythonの仮想環境を作成してその中にFlaskをインストールし、ルートの処理をapp.pyに保存して、Flaskのコマンドラインインターフェイスから開発用サーバーを起動します。表示されたローカルアドレスをブラウザーで開くと、ルートの応答を確認できます。この手順ではVisual Studio Codeを使いますが、同じファイルとコマンドはほかのエディターでも使用できます。 (Visual Studio Code)
Flaskの基本的なアプリケーションを作成する
Flaskは、WebアプリケーションやAPIを構築するためのPython用Webフレームワークです。小規模なプロジェクトでは、Pythonと、プロジェクトの環境にインストールしたFlask、そしてアプリケーションとルートを定義するPythonファイルが必要です。
まず、Visual Studio Codeでプロジェクトフォルダーを開き、統合ターミナルでpython --versionを実行して、Pythonを利用できることを確認します。コマンドを実行すると、インストールされているPythonのバージョンが表示されます。システムによってはPythonコマンドがpython3という名前になっています。その場合は、必要に応じてバージョン確認、環境の作成、後で実行するコマンドのすべてで、同じ名前を使ってください。
python -m venv .venvを実行して、プロジェクトフォルダーに仮想環境を作成します。これにより、このプロジェクトのパッケージをほかのPythonプロジェクトやシステムのインストール環境から分離できます。使用しているターミナルに合ったコマンドで仮想環境を有効にします。
- Windowsのコマンドプロンプト:
.venv\\Scripts\\activate.bat - Windows PowerShell:
.venv\\Scripts\\Activate.ps1 - macOSまたはLinux:
source .venv/bin/activate
有効化したら、python -m pip install FlaskでFlaskをインストールします。python -m pipを使うと、アクティブな環境で選択されているPythonインタープリターにFlaskがインストールされます。ターミナルでpythonが見つからない場合は、そのコマンドがインストールされている環境で、各コマンドをpython3に置き換えて実行してください。Visual Studio Codeが仮想環境を自動検出しない場合は、.venvのインタープリターを選択します。
プロジェクトフォルダーにapp.pyという名前のファイルを作成し、次の最小構成のアプリケーションを追加します。python app.pyを実行すると、そのテストクライアントがルートへのリクエストを送り、応答を表示します。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hi there, this is our basic Flask app."
if __name__ == "__main__":
response = app.test_client().get("/")
print(response.get_data(as_text=True))
Hi there, this is our basic Flask app.
Flaskクラスでアプリケーションオブジェクトを作成します。@app.route("/")デコレーターは、サイトのルートパスをindexに対応付けます。関数が返す文字列がブラウザーへの応答になります。テストクライアントはネットワークポートを開かずにこのルートを実行します。if __name__ == "__main__":ブロックは、このファイルを直接実行した場合にだけ確認処理を行います。別のモジュールからインポートしても、応答は表示されません。
ブラウザーでアプリを表示するには、仮想環境を有効にしたまま、ターミナルをapp.pyのあるフォルダーに移動し、flask --app app runでFlaskの開発用サーバーを起動します。システムでpython3を使う場合は、そのインタープリターで作成した仮想環境を有効にし、対応するFlaskコマンドを使ってください。FlaskはローカルURLを表示します。一般的な例はhttp://127.0.0.1:5000ですが、ターミナルに表示された正確なアドレスを開いてください。ルートパスを開くと、コード例にあるHi there, this is our basic Flask app.という英語の文字列が表示されます。この文字列はコード例と同じく英語のままです。ページを使っている間はターミナルのプロセスを実行したままにし、サーバーを停止するときは、そのターミナルでCtrl+Cを押します。python app.pyを実行した場合は、上記のルート確認を行って終了します。
Flask組み込みのサーバーはローカル開発用です。本番用サーバーとして公開したり、本番環境でデバッグモードを有効にしたりしないでください。代わりに、利用するホストに適した本番用WSGIサーバーとデプロイ設定を使用してください。