LaTeX957300 views
雑学1472593 views
高校日本史189857 views
ヒストリア284143 views
中学英語808712 views
Computer365120 views
小学算数1194618 views
中学理科1626207 views
教育148875 views
中学社会667106 views
Help
Tools

English

Flask のルーティングと URL 変数

Flask ではデコレータ @app.route() を使ってルーティングを定義する。URL パスと Python 関数を結びつけることで、リクエストに応じた処理を実行できる。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, World!'

@app.route('/about')
def about():
    return 'About Page'

/ にアクセスすると index 関数が、/about にアクセスすると about 関数が呼び出される。

URL 変数

URL の一部を変数として受け取ることができる。<変数名> の形式で指定し、関数の引数として受け取る。

@app.route('/user/<username>')
def show_user(username):
    return f'User: {username}'

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return f'Post ID: {post_id}'

<int:post_id> のように型コンバータを指定すると、Flask が自動的に型変換を行う。利用可能なコンバータは以下のとおり。

stringデフォルト。スラッシュを含まない文字列
int正の整数
float正の浮動小数点数
pathスラッシュを含む文字列
uuidUUID 文字列

HTTP メソッドの指定

デフォルトでは GET リクエストのみを受け付ける。POST など他のメソッドを許可するには methods 引数を指定する。

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return 'Processing login...'
    return 'Login Page'

複数のメソッドを許可する場合は、request.method で分岐処理を行うのが一般的である。