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

Функция login

Функция login применяется для аутентификации пользователя и создания сессии в Django. Она принимает объект запроса и объект пользователя, после чего сохраняет идентификатор пользователя в сессии. Функция автоматически обрабатывает все необходимые операции для входа пользователя в систему, включая обновление последнего времени входа. Важно использовать эту функцию только после успешной проверки учетных данных с помощью функции authenticate.

Синтаксис

from django.contrib.auth import login login(request, user, backend=None)

Пример

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

from django.contrib.auth import authenticate, login from django.shortcuts import redirect, render from django.contrib import messages def user_login(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('dashboard') else: messages.error(request, 'Invalid username or password.') return render(request, 'registration/login.html')

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

"User successfully logged in" "Redirected to dashboard"

Пример

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

from django.contrib.auth import authenticate, login from django.shortcuts import redirect, render def user_login_with_backend(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user, backend='django.contrib.auth.backends.ModelBackend') return redirect('profile') return render(request, 'registration/login.html')

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

"User logged in with ModelBackend" "Redirected to profile"

Пример

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

from django.contrib.auth import authenticate, login from django.shortcuts import redirect, render from django.contrib.auth.models import User def user_login_check_session(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) is_authenticated = request.user.is_authenticated username = request.user.username print(f"User {username} is authenticated: {is_authenticated}") return redirect('dashboard') return render(request, 'registration/login.html')

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

"User john_doe is authenticated: True"

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

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