📝 Django

Аутентификация в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
76
🌿
Уровень
Средний
🐦 💼 ✈️

Django включает полную систему аутентификации: User модель, login/logout, разрешения.

User модель

from django.contrib.auth.models import User

# Создание
user = User.objects.create_user(
    username='alice',
    email='alice@example.com',
    password='secret123'
)

# Получение
user = User.objects.get(username='alice')
print(user.username, user.email, user.is_staff, user.is_superuser)

Подключение URL аутентификации

# mysite/urls.py
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('accounts/', include('django.contrib.auth.urls')),
    # Даёт:
    # /accounts/login/          → auth_views.LoginView
    # /accounts/logout/         → auth_views.LogoutView
    # /accounts/password_change/ и др.
]

Страница входа

Нужен шаблон registration/login.html:

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Войти</button>
</form>

В settings.py:

LOGIN_REDIRECT_URL = '/'        # куда после входа
LOGOUT_REDIRECT_URL = '/accounts/login/'
LOGIN_URL = '/accounts/login/'  # куда редиректить если не авторизован

Регистрация

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render, redirect

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
    else:
        form = UserCreationForm()
    return render(request, 'registration/register.html', {'form': form})

login / logout в коде

from django.contrib.auth import login, logout, authenticate

# Авторизация
user = authenticate(request, username='alice', password='secret123')
if user:
    login(request, user)

# Выход
logout(request)

Проверка в шаблоне

{% if user.is_authenticated %}
    <p>Привет, {{ user.username }}!</p>
    <a href="{% url 'logout' %}">Выйти</a>
{% else %}
    <a href="{% url 'login' %}">Войти</a>
{% endif %}

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

JWT токены с python-jose

python-jose — библиотека для работы с JSON Web Tokens (JWT).

📅 30.06.2026 👁️ 112
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!