Flaskのapp.routeの使い方を解説!
2024年7月3日
こんにちは。
FlaskはPythonの軽量なウェブフレームワークであり、そのシンプルさと柔軟性から多くの開発者に愛されています。
Flaskを使う際に最も基本的かつ重要な機能の一つがapp.route
デコレータです。
今回の記事では、Flaskのapp.route
について詳細に説明し、具体的な使用方法をご紹介します。
Flaskのapp.routeとは?
app.routeは、Flaskアプリケーションにルート(URLのパス)を定義するためのデコレータです。ちなみに、デコレーターは、Pythonの関数やメソッドの前後に追加の機能を付加するための機能です。
特定のURLに対してどの関数が呼び出されるかを指定するために使用されます。app.routeを使うことで、ウェブアプリケーションのルーティングを簡単に設定できます。
例えば、/(URLの先頭)にアクセスした場合に”Hello World”を表示させる場合は以下のように記述します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
app.routeの基本的な使い方
app.routeは以下のような記述をします。
@app.route([URLのパス])
def [関数名]():
#URLにアクセスした際に実行する処理
先ほどの例に挙げたコードでは、”/(URLのルート)”にアクセスした際、hello_worldという関数が実行されます。この関数は”Hello, World!”という文字を返すので、Webサイトには”Hello, World!”が表示されます。
@app.route('/')
def hello_world():
return 'Hello, World!'
URLのパラメータを使う方法
app.route
では、URLにパラメータを含めることもできます。
これにより、動的なURLを処理することができます。
例えば、以下のようにURLにusernameの値を取得して処理を行うことができます。
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
この例では、/user/<username>
というURLにアクセスすると、username
パラメータが関数に渡され、そのユーザー名を表示します。
パラメータの型指定
パラメータは型の指定をすることができます。
デフォルトではすべてのパラメータは文字列として扱われますが、整数や浮動小数点数として扱うことも可能です。
@app.route('/post/<int:post_id>')
def show_post(post_id):
return f'Post {post_id}'
この例では、post_idが整数として扱われ、例えば/post/42にアクセスすると「Post 42」と表示されます。もし、/post/abcのように整数以外の値が渡されると、404エラーページが表示されます。
複数のルートを指定する方法
1つの関数に対して複数のルートを設定することもできます。
異なるURLが同じ処理を必要とする場合に便利です。
たとえば、http://〇〇.com/aboutやhttp://〇〇.com/infoにアクセスした際に同じ内容を表示させたい時に使います。
@app.route('/about')
@app.route('/info')
def about():
return 'This is the about page'
HTTPメソッドの指定
app.route
はGETリクエストを処理しますが、POSTやPUT、DELETEなどの他のHTTPメソッドを指定することもできます。
例えば、POSTメゾットを使う時は以下のように設定します。
@app.route('/submit', methods=['POST'])
def submit():
return 'Form submitted!'
複数のメソッドを指定する場合は、以下のように設定します。
@app.route('/submit', methods=['GET', 'POST'])
まとめ
今回の記事では、Flaskのapp.route
の使い方について解説しました。
Flaskのapp.route
は、ウェブアプリケーションのルーティングを管理するための便利な設定です。
このデコレータを使うことで、URLとそれに対応する関数を簡単に結びつけることができます。ルートパラメータやHTTPメソッドの指定など、多くの機能を活用することで、さまざまウェブアプリケーションを構築することが可能です。
今回の記事がWeb開発の助けになれば幸いです。
ここまでお読みいただきありがとうございました。
Pythonの基礎から応用まで学べる
Python WebAcademy
Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。
無料で試すインフラの学習はInfraAcademy
おすすめの記事