Webアプリケーションにおけるセッションとは
・代表的な例が、ログイン後の画面表示です。ログインが必要なWebサイトの場合、ログインに成功すると「ようこそ○○さん」と表示されます。
その後は、どのページをクリックしても自分のユーザー名が表示されるはずです。
画面から何もデータを送信していないのに、自分のユーザー名が毎回表示される。
このように複数の画面で状態を共有する仕組みがセッション(Session)。
セッションはWebサイト単位でデータ共有できるスペースのようなもので、各々のユーザーごとに区画されています。


sessionオブジェクトに値を読み書きすることで、セッションを使えます。
セッションに入れたデータはサーバー側(Python側)でデータを保持できるので、クライアント側からデータを送って貰う必要がありません。

実例
フロント
<body>
    ログインしてください<br>
    <form method="get" action="{{ url_for('login')}}">
        <p>名前:<input type="text" name="name" size="40"></p>
        <button type="submit">ログイン</button>
    </form>
</body>
</html>

バック
from flask import Flask, render_template, session, redirect, url_for, request
app = Flask(__name__)
app.secret_key = 'hXDm8NXqqJATH&7XHW6AtM.XEqM4cEMn'

@app.route("/login")
def login():
    your_name = request.args.get("name", "")
    if your_name:
        session["username"] = your_name
        return redirect(url_for("todo"))
    else:
        return redirect(url_for("index"))
    

※ログインされたらyour_nameをsession[username]に代入してセッションに保存している

@app.route("/logout")
def logout():
    session.clear()
    return redirect(url_for("index"))
 

※ログアウトしたらセッションから削除