Использование сессий Django

Джанго предоставляет session framework, поддерживающую анонимные и пользовательские сессии. Session framework позволяет хранить произвольные данные для каждого посетителя. Данные сеанса хранятся на стороне сервера, а файлы cookie содержат session ID, если не используется обработчик сессий на основе файлов cookie. Промежуточное подпрограммное обеспечение управляет отправкой и получением файлов cookie. Обработчик сессий по умолчанию хранит данные сессии в базе данных, но, как вы увидите далее, можно выбрать между различными обработчиками сессий.

Чтобы использовать сессии, необходимо убедиться, что параметр MIDDLEWARE_CLASSES проекта содержит 'django.contrib.sessions.middleware.SessionMiddleware'. Это промежуточное программное обеспечение управляет сессиями и добавляется по умолчанию при создании нового проекта с помощью команды startproject.

Промежуточное программное обеспечение позволяет сделать текущую сессию доступной в объекте request. Доступ к текущей сессии можно получить с помощью request.session , используя его аналогично словарю Python для хранения и извлечения данных сессии. Словарь сессий по умолчанию принимает любой объект Python, который может быть сериализован в JSON. Можно задать переменную в сессии следующим образом:

request.session['foo'] = 'bar'

Извлечение session key:

request.session.get('foo')

Удалить key, хранящийся в session:

del request.session['foo']

Как вы видели, мы только что обрабатывали request.session, как стандартный словарь Python.

При входе пользователей в сайт их анонимная сессия теряется и создается новая сессия для пользователей, прошедших авторизацию. При хранении элементов в анонимной сессии, которую необходимо сохранить после входа пользователей в систему, необходимо будет скопировать старые данные сессии в новую сессию.

results matching ""

    No results matching ""