Flask コマンドラインインターフェイス

Beginner

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

はじめに

この実験では、Flask アプリケーションを管理するために Flask コマンドラインインターフェイス (CLI) をどのように使用するかを学びます。Flask CLI には、開発サーバーを実行したり、カスタムコマンドを作成したりするなど、一連のコマンドが用意されています。

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

Flask のインストール

始める前に、Python 環境に Flask がインストールされていることを確認してください。pip を使って Flask をインストールできます。

pip install flask

Flask アプリケーションの作成

app.py という名前の新しい Python ファイルを作成し、次のコードを追加して基本的な Flask アプリケーションを作成します。

from flask import Flask

app = Flask(__name__)

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

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

ファイルを保存し、ターミナルで次のコマンドを使用して実行します。

python app.py

開発サーバーを実行する

python app.py を使って手動で Flask アプリケーションを実行する代わりに、Flask CLI を使って開発サーバーを起動することができます。現在実行中のアプリケーション(もしあれば)を停止し、次のコマンドを実行します。

flask run

Flask の開発サーバーが起動し、アプリケーションが実行されている URL(通常は http://127.0.0.1:5000/)が表示されるはずです。その URL をブラウザで開くと、「Hello, Flask!」のメッセージが表示されるはずです。

カスタムコマンドの作成

Flask CLI を使うと、コマンドラインから実行できるカスタムコマンドを作成できます。引数として名前を受け取り、挨拶メッセージを表示する greet というカスタムコマンドを作成しましょう。

commands.py という名前の新しい Python ファイルを作成し、次のコードを追加します。

import click

@click.command()
@click.argument('name')
def greet(name):
    click.echo(f'Hello, {name}!')

if __name__ == '__main__':
    greet()

ファイルを保存し、次のコマンドを使って実行します。

python commands.py John

ターミナルに「Hello, John!」というメッセージが表示されるはずです。

Flask アプリケーションにコマンドを登録する

Flask CLI を通じてカスタムコマンドを利用できるようにするには、Flask アプリケーションにそれらを登録する必要があります。app.py ファイルを開き、次のように変更します。

from flask import Flask
from commands import greet

app = Flask(__name__)
app.cli.add_command(greet)

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

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

ファイルを保存し、flask run コマンドを使って Flask 開発サーバーを再起動します。これで、コマンドラインからカスタムコマンド greet を実行できるようになります。

flask greet John

ターミナルに「Hello, John!」というメッセージが表示されるはずです。

まとめ

この実験では、Flask アプリケーションを管理するために Flask コマンドラインインターフェイス (CLI) をどのように使用するかを学びました。開発サーバーを実行する方法、カスタムコマンドを作成する方法、および Flask アプリケーションにコマンドを登録する方法を学びました。Flask CLI は、コマンドラインから Flask アプリケーションと対話するための便利な方法を提供し、アプリケーションの管理とテストを容易にします。