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

Функция logout

Функция logout применяется к объекту запроса и выполняет выход текущего аутентифицированного пользователя. Она удаляет идентификатор пользователя из сессии и очищает все данные, связанные с аутентификацией. Функция не возвращает никакого значения, а просто модифицирует состояние сессии. Для корректной работы функции требуется импортировать её из модуля django.contrib.auth.

Синтаксис

from django.contrib.auth import logout logout(request)

Пример . Использование в представлении

Давайте создадим представление для выхода пользователя из системы и перенаправления на главную страницу:

from django.shortcuts import redirect from django.contrib.auth import logout def user_logout(request): logout(request) return redirect('home')

Пример . С использованием декоратора

Давайте создадим представление, которое доступно только аутентифицированным пользователям и выполняет выход с последующим перенаправлением на страницу входа:

from django.shortcuts import redirect from django.contrib.auth import logout from django.contrib.auth.decorators import login_required @login_required def logout_view(request): logout(request) return redirect('login')

Пример . С очисткой сессионных данных

Давайте выполним выход пользователя и явно очистим все данные сессии:

from django.shortcuts import redirect from django.contrib.auth import logout def clear_logout(request): logout(request) request.session.flush() return redirect('home')

Пример . Использование в шаблоне

Давайте создадим форму выхода, которую можно разместить в шаблоне для выполнения POST-запроса на выход:

from django.shortcuts import redirect from django.contrib.auth import logout from django.views.decorators.csrf import csrf_protect @csrf_protect def logout_post(request): if request.method == 'POST': logout(request) return redirect('home') return redirect('home')

А в шаблоне можно разместить следующую форму:

<form method="post" action="{% url 'logout' %}"> {% csrf_token %} <button type="submit">Выйти</button> </form>

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

  • функция login,
    которая выполняет вход пользователя в систему
  • функция authenticate,
    которая проверяет учетные данные пользователя
  • декоратор login_required,
    который ограничивает доступ к представлениям
  • функция update_session_auth_hash,
    которая обновляет сессию при смене пароля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить