動かざることバグの如し

近づきたいよ 君の理想に

Flaskでセッションの読み書きをする

Flaskでセッションの読み書きをやってみたメモ。

環境

準備

from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'hogehoge'

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

if __name__ == '__main__':
    app.run(debug=True)

ポイントは2つあって、from flask import Flask, sessionで明示的にsessionをimportしている点と、app.secret_keyが必要な点。これがないと

RuntimeError: The session is unavailable because no secret key was set.  Set the secret_key on the application to something unique and secret.

とエラーになる。

書き込み

簡単

session['name'] = '太郎'

読み込み

name = session.get('name')

session['name']でも取得できるが、値がなかったときにエラーになるのでオススメしない。session.get()でなかった場合はNoneが返る。

第2引数に値を入れると初期値を入れることができる

session.get('name', '名無し')

削除

session.pop('name', None)