Python - flask - ルーティング


 クラウディア


1. 概要
2. 基本
3. 変数化
4. HTTP メソッド
5. 参考サイト

1. 概要

 ルーティングについて、少し突っ込んでみます。

2. 基本

 下記の状態で。

from flask import Flask

app = Flask(__name__)

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

@app.route('/hello')
def hello():
  return "Hello"

if __name__ == "__main__":
  app.run()
 プロジェクトルートに。

https://example.com/flask/
 でアクセスできるものとして、ドキュメントルートにアクセスすれば、ブラウザに「Hello, World!」と表示され。

https://example.com/flask/hello
 にアクセスすれば、ブラウザに「Hello」と表示されます。

3. 変数化

 「URL」の一部を変数として受け取ることができるようです。

@app.route('/user/<username>')
def show_user_profile(username):
    return f'ユーザー名: {username}'
 末尾を「username」という変数名として扱います。

https://example.com/flask/user/hogehoge
 にアクセスするとブラウザに「ユーザー名: hogehoge」と表示されます。

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return f'記事番号: {post_id}'
 末尾を「int」型の変数名「post_id」として扱います。

https://example.com/flask/post/123
 にアクセスするとブラウザに「記事番号: 123」と表示されます。

4. HTTP メソッド

 「request」というクラス(?)をインポートすると。  「HTTP」メソッドをわけて区別することができます。

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        user = request.form['username']
        return f'{user}さん、ログインしました'
    else:
        return '''
            <form method="post">
                <input type="text" name="username">
                <input type="submit" value="ログイン">
            </form>
        '''
 上記の記述をしておいて。

https://example.com/flask/login
 にアクセスすると、下記が表示されます。

 「hogehoge」と入力して、「ログイン」を押すと、下記が表示されます。


5. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

TikTok Shop 【リピート用プログラム】
AbemaTV 無料体験
それがだいじWi-Fi
薬屋の独り言
損保との違い