この記事では、FlaskでURLルーティングを行うFlask routeを扱い、それをFlaskアプリケーションに実装していきます。
URLルーティングとは
URLルーティングは、特定の関数(Webページのコンテンツを持つ)をそのWebページのURLにリンクさせるために使用されます。
エンドポイントをヒットすると、Webページはそのコンテンツを表示します。
これは、ルートを使用してURLエンドポイントにリンクされた関数の出力です。
URLルーティングは次のような方法で行うことができます。
URLを関数にルーティングする方法
Flask のルートを設定するさまざまな方法を学んでいきましょう。
1. app.route()の使用
ここでは、以下のような構文が使われています。
@app.route('<endpoint>')
|
したがって、URL が “localhost:5000/page” の Flask アプリケーションの Web ページの例は、次のようになります。
from flask import Flask
app = Flask(__name__)
@app.route('/blogs')
def blogs():
return 'Welcome to Blog site'
app.run(host='localhost', port=5000)
|
注意:関数名はエンドポイント名と同じである必要があります。
アプリケーションを実行します。
python filename.py |
from flask import Flask
app = Flask(__name__)
@app.route('/blogs/<int:id>')
def blogs(id):
return f"Welcome to Blog number:{id}"
app.run(host='localhost', port=5000)
|
また、エンドポイントを変数にしたURLもあります。
このようなURLは、ユーザーから引数を受け取る関数を持つウェブページに使用されます。
この関数を考えてみましょう。
app.add_url_route('<url_rule(endpoint_structure)>','<endpoint_name>',<view_function>')
|
注:ここでは、非可変エンドポイント(blogs)が関数名となり、エンドポイント変数(id)が関数の引数となります。
さて、お察しの通り、変数のエンドポイントに基づき、ウェブページは異なる出力を表示することになります。
from flask import Flask
app = Flask(__name__)
def blogs():
return f"Welcome to Blog Site"
app.add_url_rule('/blogs','blogs', blogs)
app.run(host='localhost', port=5000)
|
2. add_url_route() 属性の使用法
この関数は、通常、デコレータを使用せずに関数を外部へルーティングする必要がある場合に使用します。
構文は以下の通りです。
app.add_url_rule('<url_rule_with_variable>','<endpoint_name>',<view_function>)
|
というわけで、以下のようなファイルを考えてみましょう。
from flask import Flask
app = Flask(__name__)
def blogs(id):
return f"Welcome to Blog number:{id}"
app.add_url_rule('/blogs/<int:id>','blogs',blogs)
app.run(host='localhost', port=5000)
|
ここで、出力は前と同じになります。

同様に、変数の終点を表す構文は次のとおりです。

ここでは、変数終了点のファイルの構文は次のようになります。

アプリケーションを実行し、出力に注目してください。

ここでも、出力は前と同じです。
まとめ
このチュートリアルは以上です。
このチュートリアルを理解するために、上記の例を試してみてください。
では、また次の記事でお会いしましょう。