フラスコをインポートするときに、session
などのモジュールをインポートします。
SecureCookieSession
は一種の辞書であり、セッションを使用してアクセスできます。
今、私はウェブサイトを構築しようとしたときに使用したすべてのジャンク変数をクリアしようとします。
Stackoverflowに関する回答の1つは、セッションの内容をクリアするためにsession.clear()
などのコマンドを使用しました。しかし、そのようなコマンドは、そのようなコマンドが存在しないというエラーを出します。
SecureCookieSession
をクリアする方法と、サーバーをシャットダウンするかWebサイトを閉じるたびにセッションをクリアする方法を教えてください。
from flask import session
session.clear()
私はこのようなセッションをフラスコで使用しますが、動作します。ただし、SecureCookieSession
は使用しませんが、役立つ場合があります。
セッションを繰り返して、セッションの各キーに対してsession.pop()
を呼び出すこともできます。 Popはセッションから変数を削除するので、秘密鍵を更新し続ける必要はありません。
for key in session.keys():
session.pop(key)
Jerry Unkhaptay's answer で指摘されているように、対応する Flask documentation section で指摘されているように、次のことが簡単にできます:
from flask import session
session.clear()
しかし、かなり公平に、コメントで指摘されているように、 alejandro によって:
アプリケーションでフラッシュメッセージも使用している場合、フラッシュメッセージは
session
に保存されているため、session
をクリアするとフラッシュ前に消去できることを考慮する必要があります。
私の提案は、リストの理解を活用することです。
[session.pop(key) for key in list(session.keys())]
これは、基本的に TheF1rstPancake's answer と同じfor
ループですが、1ライナーです。フラッシュされたメッセージを除くすべてをsession
から削除できます(または、他の条件を追加することもできます)。
[session.pop(key) for key in list(session.keys()) if key != '_flashes']