開発サーバを使って Flask アプリを開発する

Beginner

This tutorial is from open-source community. Access the source code

はじめに

このチュートリアルでは、Flask の開発サーバを使用して、ローカル開発中に Flask アプリケーションを実行する方法を学びます。開発サーバは、対話型のデバッガを提供し、変更が加えられたときに自動的にコードを再読み込みします。このチュートリアルでは、開発サーバを実行する手順と、発生する可能性のある一般的な問題の対処方法を案内します。

注:コードファイルは自分で作成し、環境で実行する必要があります。Web 5000 で Flask サービスの状態をプレビューできます。

Flask アプリケーションのセットアップ

開発サーバを実行する前に、Flask アプリケーションをセットアップする必要があります。app.py という名前の新しい Python ファイルを作成し、次のコードを追加します。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

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

このコードでは、Flask アプリケーションを作成し、単純な "Hello, Flask!" メッセージを返すルートを定義しています。if __name__ == "__main__": ブロックは、Flask アプリケーションがスクリプトが直接実行されたときにのみ実行され、モジュールとしてインポートされたときには実行されないことを保証します。

Flask CLI を使って開発サーバを実行する

開発サーバを実行する最も簡単な方法は、Flask CLI コマンド flask run を使用することです。ターミナルまたはコマンドプロンプトを開き、app.py ファイルがあるディレクトリに移動し、次のコマンドを実行します。

flask run

これにより、http://localhost:5000/ で開発サーバが起動します。Web ブラウザを開いてこの URL を入力することで、Flask アプリケーションにアクセスできます。

デバッグモードを有効にする

対話型のデバッガを提供し、変更が加えられたときに自動的にコードを再読み込みするデバッグモードを有効にするには、flask run コマンドに --debug オプションを追加します。

flask run --debug

これで、コードに加えた変更があると、開発サーバが自動的に再読み込まれます。

アプリケーションファイルを指定する

デフォルトでは、Flask は Flask アプリケーションとして実行するために app.py という名前のファイルを探します。ファイル名が異なる場合や、別のディレクトリにある場合、--app オプションを使用してアプリケーションファイルを指定できます。

flask run --app myapp.py

myapp.py をアプリケーションファイルの名前に置き換えてください。

既に使用されているアドレス

サーバを起動しようとするときに、「既に使用されているアドレス」というメッセージ付きの OSError が表示される場合、これは開発サーバのデフォルトポートである 5000 番ポートが既に別のプログラムによって使用されていることを意味します。他のプログラムを特定して停止するか、別のポートを選択することができます。

5000 番ポートを使用しているプロセスを特定するには、netstat または lsof コマンドを使用できます。以下は、Linux、macOS、および Windows の例です。

  • Linux:
netstat -nlp | grep 5000
  • macOS / Linux:
lsof -P -i :5000
  • Windows:
-ano > netstat | findstr 5000

プロセスを特定したら、他のオペレーティングシステムツールを使用してそれを停止できます。プロセスを停止した後、開発サーバを問題なく実行できるはずです。

Python から開発サーバを実行する

Flask CLI コマンドを使用する以外にも、Python コードから開発サーバを起動することもできます。app.py ファイルの末尾に次のコードを追加します。

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

これで、app.py ファイルを Python で実行することで開発サーバを起動できます。

python app.py

これにより開発サーバが起動し、以前と同じ方法で Flask アプリケーションにアクセスできます。

まとめ

このチュートリアルでは、Flask の開発サーバを使用して、ローカル開発中に Flask アプリケーションを実行する方法を学びました。Flask CLI コマンドで開発サーバを実行し、デバッグモードを有効にし、アプリケーションファイルを指定し、「既に使用されているアドレス」などの一般的な問題を処理する方法を学びました。また、Python コードから開発サーバを起動する方法も学びました。開発サーバを使用することで、本番環境にデプロイする前に、Flask アプリケーションを簡単にテストしてデバッグすることができます。