Переменная session
Переменная session доступна внутри Jinja-шаблонов Flask
и хранит данные сессии текущего пользователя в виде словаря.
Через неё можно читать значения, сохранённые в сессии на стороне
сервера, например имя пользователя или его настройки.
Если сессия пуста, переменная ведёт себя как пустой словарь.
Синтаксис
{{ session['key'] }}
{{ session.get('key') }}
{{ session.key }}
Пример
Давайте сохраним имя пользователя в сессии и выведем его в шаблоне:
from flask import Flask, session, render_template
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
session['user'] = 'abcde'
return render_template('index.html')
Теперь выведем значение из сессии в шаблоне:
<p>{{ session['user'] }}</p>
Результат выполнения кода:
<p>abcde</p>
Пример
Давайте проверим наличие ключа в сессии через условие:
{% if 'user' in session %}
<p>hello, {{ session['user'] }}</p>
{% else %}
<p>hello, guest</p>
{% endif %}
Если в сессии сохранён пользователь 'abcde', результат будет таким:
<p>hello, abcde</p>
Пример
Давайте выведем значение по умолчанию, если ключа в сессии нет:
<p>{{ session.get('user', 'guest') }}</p>
Результат выполнения кода при пустой сессии:
<p>guest</p>