Flaskは、Pythonで書かれた軽量なウェブフレームワークで、ウェブアプリケーションの構築を非常に簡単にするために設計されています。Flaskの最大の特徴は、最小限のコードでアプリケーションを作成できる点です。この記事では、Flaskの基本的な枠組みと、特に「ルーティング(mouvements)」について詳しく説明します。
Flaskの概要
Flaskは、非常にシンプルで柔軟性の高いウェブフレームワークです。Djangoのような大規模なフレームワークとは異なり、Flaskは「マイクロフレームワーク」として、必要最低限の機能だけを提供します。Flaskを使用することで、開発者は複雑な設定に煩わされることなく、迅速にアプリケーションを構築できます。

1. Flaskアプリケーションの作成
Flaskを使い始めるには、まずFlaskをインストールする必要があります。インストールは以下のコマンドで行います。
bashpip install flask
インストールが完了したら、簡単なFlaskアプリケーションを作成することができます。以下は基本的なFlaskアプリケーションの例です。
pythonfrom flask import Flask
# Flaskのインスタンスを作成
app = Flask(__name__)
# ルートURLにアクセスした時の処理
@app.route('/')
def hello_world():
return 'Hello, World!'
# アプリケーションを実行
if __name__ == '__main__':
app.run()
このコードを実行すると、ブラウザで「http://127.0.0.1:5000/」にアクセスすると、「Hello, World!」と表示されます。
2. ルーティングとは?
Flaskで「ルーティング(Routing)」とは、特定のURLにアクセスした際に実行する処理を定義することです。@app.route
デコレーターを使用することで、特定のURLパスに対応する関数を定義できます。
例1: 基本的なルート
python@app.route('/')
def home():
return 'ホームページへようこそ!'
この場合、「/」のURLパスにアクセスすると、home()
関数が実行され、レスポンスとして「ホームページへようこそ!」が表示されます。
例2: パラメータ付きルート
FlaskではURLに動的なパラメータを渡すことができます。以下は、ユーザー名をURLパスに含めて、そのユーザーに対する挨拶を表示する例です。
python@app.route('/hello/' )
def greet_user(username):
return f'こんにちは、{username}さん!'
このルートでは、「/hello/John」のようにアクセスすると、greet_user('John')
が呼び出され、「こんにちは、Johnさん!」と表示されます。
3. HTTPメソッドとルーティング
Flaskの@app.route
デコレーターでは、特定のHTTPメソッド(GET, POSTなど)を指定することができます。デフォルトでは、FlaskはGETメソッドに対してルーティングしますが、POSTメソッドを扱いたい場合などには明示的に指定する必要があります。
例3: GETとPOSTメソッドを使ったルーティング
python@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# POSTメソッドで送信されたデータを処理
return 'ログイン成功'
return 'ログインページ'
このコードでは、GETメソッドで「/login」にアクセスするとログインページが表示され、POSTメソッドで送信されると「ログイン成功」が表示されます。
4. 複数のルートを設定する
Flaskでは、1つの関数に複数のURLパスを対応させることができます。これにより、同じ処理を複数のパスで実行することが可能です。
python@app.route('/')
@app.route('/home')
def home():
return 'ホームページへようこそ!'
この場合、「/」および「/home」の両方のパスで同じhome()
関数が呼び出されます。
5. ルートに対するエラーハンドリング
Flaskでは、HTTPエラーに対する処理も簡単に定義できます。たとえば、存在しないページにアクセスしたときに404エラーをカスタマイズしたい場合、@app.errorhandler
を使ってエラーハンドラーを設定できます。
python@app.errorhandler(404)
def page_not_found(error):
return 'ページが見つかりません', 404
このコードでは、404エラーが発生した際に「ページが見つかりません」というメッセージを表示します。
6. まとめ
Flaskを使用したウェブアプリケーションの開発は非常にシンプルで、直感的に理解しやすいです。特に、ルーティングの概念を理解することはFlaskアプリケーションを効率的に構築するために重要です。ルートの定義、HTTPメソッドの扱い、エラーハンドリングなど、Flaskでは非常に多くの機能が提供されており、これらをうまく活用することで、動的なウェブアプリケーションを迅速に開発できます。
Flaskはそのシンプルさゆえに、小規模なプロジェクトに最適であり、さらに成長していくアプリケーションにも柔軟に対応できます。Flaskを使って、自分だけのウェブアプリケーションを作成してみてください。