РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
371 of 818 menu

Метод set_cookie

Метод set_cookie применяется к объекту HttpResponse и позволяет установить cookie в заголовках ответа. Метод принимает ключ и значение cookie, а также дополнительные параметры для настройки времени жизни, пути, домена, флагов безопасности и других атрибутов. Cookie устанавливаются в браузере клиента и отправляются обратно на сервер при следующих запросах.

Синтаксис

response.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None)

Параметры метода

Метод set_cookie принимает следующие параметры:

- key - обязательный параметр, имя cookie;

- value - значение cookie, по умолчанию пустая строка;

- max_age - максимальное время жизни cookie в секундах, после которого оно будет удалено;

- expires - дата истечения срока действия cookie в формате строки или объекта datetime;

- path - путь, для которого cookie действительно, по умолчанию корневой путь;

- domain - домен, для которого cookie действительно;

- secure - флаг, указывающий, что cookie должно передаваться только по HTTPS;

- httponly - флаг, запрещающий доступ к cookie через JavaScript;

- samesite - определяет политику SameSite для защиты от CSRF-атак.

Пример

Давайте установим простую cookie с именем 'user_id' и значением 123 в представлении:

from django.http import HttpResponse def set_user_cookie(request): response = HttpResponse("Cookie has been set") response.set_cookie('user_id', '123') return response

Результат выполнения кода:

"Cookie has been set"

Пример

Давайте установим cookie с временем жизни в 3600 секунд (один час) и флагом 'httponly':

from django.http import HttpResponse from datetime import datetime, timedelta def set_session_cookie(request): response = HttpResponse("Session cookie set") response.set_cookie( 'session_token', 'abc123', max_age=3600, httponly=True, secure=True ) return response

Результат выполнения кода:

"Session cookie set"

Пример

Давайте установим cookie с указанием конкретной даты истечения через 7 дней:

from django.http import HttpResponse from datetime import datetime, timedelta def set_expiring_cookie(request): response = HttpResponse("Cookie with expiration date") expires_date = datetime.now() + timedelta(days=7) response.set_cookie( 'preference', 'dark_mode', expires=expires_date, path='/settings' ) return response

Результат выполнения кода:

"Cookie with expiration date"

Смотрите также

  • метод delete_cookie,
    который удаляет cookie из ответа
  • метод set_signed_cookie,
    который устанавливает подписанную cookie
  • атрибут COOKIES,
    который содержит все полученные cookie
  • декоратор ensure_csrf_cookie,
    который гарантирует установку CSRF-токена
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить