Сессии
Среда управления сессиями позволяет вам хранить и получать определённые данные на основе посетителей сайта. Она сохраняет данные на сервере и берёт управление получением и отправлением cookie на себя. Cookie используются только для передачи идентификатора сессии, а не самих данных, это предохраняет вас от большинства проблем с cookie.
Давайте рассмотрим, как активируются сессии и как они используются в функциях представлений.
Для активации сессий выполните следующие шаги:
Измените параметр MIDDLEWARE_CLASSES, добавив в него значение django.contrib.sessions.middleware.SessionMiddleware.
Внесите в параметрINSTALLED_APPSзначение django.contrib.sessions.
Запустите python manage.py migrate после этого.
Стандартный шаблон приложения, созданный с помощью startproject уже имеет все необходимые настройки и если вы ничего не удаляли, то ничего добавлять не понадобится для работы сессий.
После активации SessionMiddleware каждый объектHttpRequest
— первый аргумент любой функции представления Django — будет иметь атрибут session по функциональности аналогичный словарю.
Например:
Есть ряд простых правил для эффективного использования сессий в Django:
Используйте для объекта
request.session
обычные строки Python в качестве ключей словаря. Это правило служит больше для удобства, чем для ускорения работы, но оно стоит того, чтобы ему следовать.Словарные ключи сессии, которые начинаются с символа«подчёркивание», зарезервированы для внутреннего использования Django. На практике среда использует небольшой набор зарезервированных переменных в сессии, но пока вы не знаете об их назначении, не стоит их трогать.
Не заменяйтеrequest.sessionновым объектом и не работайте с его атрибутами. Используйте его как обычный словарь Python.
Это простейшее представление аутентифицирует пользователя на сайте:
Это представление отключает ранее авторизованного пользователя:
Кроме уже рассмотренных параметров есть ещё несколько, которые влияют на то как Django работает с сессиями, используя cookie. Они показаны в таблице ниже: