Ответ 1
Нет сеанса clear
или ничего.
Нужно просто изменить app.config["SECRET_KEY"]
, и содержимое в словаре сеанса будет стерто.
При импорте фляги мы импортируем такие модули, как session
и т.д.
SecureCookieSession
- это своего рода словарь, доступ к которому можно получить с помощью сеанса.
Теперь я пытаюсь очистить все ненужные переменные, которые я использовал при создании сайта.
В одном из ответов на stackoverflow использовалась команда типа session.clear()
для очистки содержимого сеанса. Но такая команда выдает ошибку, что такой команды не существует.
Может ли кто-нибудь указать мне, как очистить SecureCookieSession
и как очистить сеанс каждый раз, когда я выключаю сервер или закрываю веб-сайт?
Нет сеанса clear
или ничего.
Нужно просто изменить app.config["SECRET_KEY"]
, и содержимое в словаре сеанса будет стерто.
from flask import session
session.clear()
Я использую такой сеанс с флягой, он работает.
Я не использую SecureCookieSession
, хотя, возможно, это может помочь.
Вы также можете перебирать сеанс и вызывать session.pop()
для каждого ключа в сеансе. Pop удалит переменную из сеанса, и вам не придется обновлять секретный ключ.
for key in session.keys():
session.pop(key)
Как указано в ответе Джерри Унхаптая, а также в соответствующем разделе документации Flask, вы можете просто сделать:
from flask import session
session.clear()
Хотя, как справедливо указывал в комментарии Алехандро:
Если вы также используете в своем приложении перепрограммированные сообщения, вам следует учитывать, что перепрограммированные сообщения хранятся в
session
и, следовательно, могут быть удалены до того, как они вспыхнут, если вы очиститеsession
.
Мое предложение состоит в том, чтобы воспользоваться преимуществами понимания списка:
[session.pop(key) for key in list(session.keys())]
по сути, это тот же цикл for
что и в ответе TheF1rstPancake, хотя и с одной строкой. Мы можем удалить все, кроме прошитых сообщений, из session
(или добавить добавить любые другие условия, в этом отношении) довольно легко, например, так:
[session.pop(key) for key in list(session.keys()) if key != '_flashes']