この記事では、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 )
|
ここで、出力は前と同じになります。
同様に、変数の終点を表す構文は次のとおりです。
ここでは、変数終了点のファイルの構文は次のようになります。
アプリケーションを実行し、出力に注目してください。
ここでも、出力は前と同じです。
まとめ
このチュートリアルは以上です。
このチュートリアルを理解するために、上記の例を試してみてください。
では、また次の記事でお会いしましょう。