【flask】「RuntimeError: The session is unavailable because no secret key was set.」の対処方法

プログラミング,python

flaskを使って勉強していたところ以下のようなエラーが発生しました。

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

「RuntimeError: The session is unavailable because no secret key was set」と出ていて「暗号化のためのキーをなんでもいいから設定しておいてね」ということのようです。

対処方法

__init__.pyで「app.secret_key」にランダムな文字列を入れます。

文字数は適当でいいようです。flask公式サイトでは[secret key]という文字列を入れていました。

ローカルで動かしている分には気にする必要はないと思いますが、もしも公開することまで考えているのであればセキュリティを高めるためにランダムに生成された文字列を使うといいでしょう。

ランダムの文字列をsecret_keyに設定するサンプルプログラムは以下の通りです。

__init__.py
app=Flask(__name__)
secret = secrets.token_urlsafe(32)
app.secret_key = secret

参考

https://stackoverflow.com/questions/51436382/runtimeerror-the-session-is-unavailable-because-no-secret-key-was-set-set-the