Класс Session
Класс Session представляет собой объект сессии,
который позволяет сохранять данные между HTTP-запросами
одного пользователя. Сессия работает как словарь:
можно записывать значения по ключу, читать их,
удалять и проверять наличие. Данные сессии хранятся
на стороне клиента в подписанной куке, поэтому
для их защиты необходимо задать секретный ключ
в атрибуте secret_key приложения Flask.
Синтаксис
from flask import session
session['key'] = value
res = session['key']
res = session.get('key')
Пример
Давайте сохраним имя пользователя в сессии на одном маршруте и прочитаем его на другом:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/set')
def set_name():
session['name'] = 'user'
return 'saved'
@app.route('/get')
def get_name():
return session.get('name', 'empty')
Результат выполнения кода для адреса /set:
"saved"
Результат выполнения кода для адреса /get:
"user"
Пример
Давайте удалим значение из сессии с помощью
метода pop и проверим результат:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/set')
def set_name():
session['name'] = 'user'
return 'saved'
@app.route('/remove')
def remove_name():
res = session.pop('name', None)
return str(res)
Результат выполнения кода для адреса /remove после /set:
"user"
Пример
Давайте сделаем сессию постоянной с помощью
атрибута permanent, чтобы она сохранялась
после закрытия браузера:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
session.permanent = True
session['name'] = 'user'
return 'ok'
Результат выполнения кода:
"ok"
Смотрите также
-
метод
get,
который читает значение из сессии по ключу -
метод
pop,
который удаляет значение из сессии и возвращает его -
атрибут
permanent,
который делает сессию постоянной -
функцию
get_flashed_messages,
которая читает одноразовые сообщения из сессии