Flaskでルーティングをする方法|変数の扱い方なども解説

スポンサーリンク

この記事では、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)

ここで、出力は前と同じになります。

Blogs
Blogs

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

Blog id
Blog id

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

Blogs
Blogs

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

Blog 1
Blog 1

ここでも、出力は前と同じです。

まとめ

このチュートリアルは以上です。

このチュートリアルを理解するために、上記の例を試してみてください。

では、また次の記事でお会いしましょう。

タイトルとURLをコピーしました