ルーティングとビュー
FlaskはPythonでWebアプリケーションを作成するための軽量フレームワークです。基本的な概念として「ルーティング」と「ビュー」があり、ユーザーがWebページにアクセスする際にどのURLに対してどの機能を提供するかを決定します。ここでは、Flaskでのルーティングとビューの設定方法について解説します。
ルーティングとは?
ルーティングは、Webアプリケーションにおいて特定のURLパスにアクセスした際に、どの関数(ビュー)を実行するかを指定する機能です。Flaskでは、ルーティングは@app.route()デコレーターを使って簡単に設定できます。
from flask import Flask
app = Flask(__name__)
# ルーティングの設定
@app.route('/')
def index():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True)
上記の例では、「/」というパスにアクセスした際にindex関数が実行され、ブラウザに「Hello, Flask!」と表示されます。
複数のルートを設定する
Flaskでは、複数のURLパスに対して異なるルーティングを設定することができます。以下は複数のルートを設定する例です。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Welcome to the Home Page'
@app.route('/about')
def about():
return 'This is the About Page'
if __name__ == '__main__':
app.run(debug=True)
このコードでは、”/”にアクセスした場合は「Welcome to the Home Page」が表示され、”/about”にアクセスすると「This is the About Page」が表示されます。
動的なURLパス
FlaskではURLの一部を変数として受け取り、ビュー関数に渡すこともできます。以下の例では、動的なURLパスを使って特定のユーザー名を表示します。
from flask import Flask
app = Flask(__name__)
@app.route('/user/')
def show_user_profile(username):
return f'User: {username}'
if __name__ == '__main__':
app.run(debug=True)
ここでは、”/user/ユーザー名”にアクセスすることで、ユーザー名を表示します。例えば、”/user/john”にアクセスすると、「User: john」と表示されます。
HTTPメソッドの指定
Flaskでは、ルーティングに対してどのHTTPメソッド(GET, POST, PUT, DELETEなど)を受け付けるかを指定することも可能です。以下の例では、GETとPOSTメソッドを受け付けるルートを設定します。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return 'Form submitted via POST'
else:
return 'Form displayed via GET'
if __name__ == '__main__':
app.run(debug=True)
このコードでは、”/submit”に対してGETリクエストが来た場合はフォームが表示され、POSTリクエストが送信された場合には「Form submitted via POST」というメッセージが表示されます。
まとめ
Flaskのルーティングとビューは、URLパスとそれに対応する関数を関連付ける重要な役割を担っています。@app.route()デコレーターを使うことで、簡単にルーティングを設定し、動的なURLパスやHTTPメソッドの指定も可能です。これにより、柔軟なWebアプリケーションの構築が可能となります。