Куки и сессии в django

категория: Django

Куки - это небольшой фрагмент данных, хранимый на компьютере пользователя. Браузер пересылает этот фрагмент данных серверу при каждом посещении сайта в HTTP-запросе. Там хранится всякая полезная инфа пользователя для его удобства, разные настройки, статистика. Там нельзя хранить секретную или важную инфу, так как ее изи стащить. Поэтому и придумали сессии.

Сессия - это данные, хранимые на сервере, а в куки только хранят уникальный идентификатор сессии.

Куки легко засунуть или достать, в респонс добавляем:

response.set_cookie('key', random.randint(1, 10))

из реквеста получаем:

request.COOKIES.get('key')

чтобы удалить куки:

response.delete_cookie('user_location')

Для работы с сессиями ничего дополнительно подключать не нужно, они включены по дефолту в скелет проекта: пакет django.contrib.sessions и мидлуха django.contrib.sessions.middleware.SessionMiddleware.

Записать и прочитать из/в request.session - как с обычным словарем.

Установить время жизни сессии в секундах:

request.session.set_expiry(60)

При логауте, к примеру, сессия удаляется и ее куки тоже.

request.session.flush()


blog comments powered by Disqus