Метод delete_cookie
Метод delete_cookie применяется к объекту HttpResponse и удаляет cookie по указанному ключу. Для удаления cookie метод устанавливает её срок действия на текущую дату, что заставляет браузер немедленно удалить её. В качестве аргументов метод принимает ключ cookie, а также необязательные параметры path, domain и secure для точного соответствия удаляемой cookie.
Синтаксис
HttpResponse.delete_cookie(key, path='/', domain=None, secure=False)
Параметры
Метод принимает следующие параметры:
key - обязательный аргумент, ключ cookie, которую необходимо удалить.
path - необязательный аргумент, определяет путь, для которого действует cookie. По умолчанию равен '/'.
domain - необязательный аргумент, указывает домен, для которого была установлена cookie. По умолчанию равен None.
secure - необязательный аргумент, указывает, должна ли cookie передаваться только по HTTPS. По умолчанию равен False.
Пример
Давайте удалим cookie с именем 'theme' в представлении:
from django.http import HttpResponse
def delete_theme_cookie(request):
res = HttpResponse("Cookie 'theme' has been deleted")
res.delete_cookie('theme')
return res
Пример
Удалим cookie с дополнительными параметрами path и domain:
from django.http import HttpResponse
def delete_user_cookie(request):
res = HttpResponse("User cookie has been deleted")
res.delete_cookie('user_session', path='/admin/', domain='.example.com')
return res
Пример
Удалим cookie с параметром secure для HTTPS-соединений:
from django.http import HttpResponse
def delete_secure_cookie(request):
res = HttpResponse("Secure cookie has been deleted")
res.delete_cookie('auth_token', secure=True)
return res
Пример
Удалим cookie и проверим наличие в запросе:
from django.http import HttpResponse
def delete_check_cookie(request):
res = HttpResponse("Cookie deleted and checked")
res.delete_cookie('language')
# Проверяем наличие cookie в запросе
if 'language' in request.COOKIES:
res.content = "Cookie still exists"
else:
res.content = "Cookie has been removed successfully"
return res
Результат выполнения кода:
"Cookie has been removed successfully"
Смотрите также
-
метод
set_cookie,
который устанавливает cookie в ответе -
метод
set_signed_cookie,
который устанавливает подписанную cookie -
атрибут
COOKIES,
который содержит все cookie запроса -
класс
HttpResponse,
который представляет HTTP-ответ