Пользовательские учётные записи Django

Прокрутить вниз

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

Основные шаги для работы с пользовательскими учетными записями в Django

1. Инициализация проекта Django и приложения:

Если у вас нет проекта, сначала создайте его.

django-admin startproject myproject
cd myproject
python manage.py startapp accounts

2. Настройка приложения `accounts`:

Добавьте приложение `accounts` в список `INSTALLED_APPS` в файле `settings.py`.

#myproject/settings.py

INSTALLED_APPS = [
# Другие установленные приложения
‘accounts’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
]

3. Создание шаблонов для регистрации и входа:

Django имеет встроенные формы для регистрации и входа. Давайте создадим базовые шаблоны для отображения этих форм.

Шаблон для входа:

<!— accounts/templates/registration/login.html —>
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form method=»post»>
{% csrf_token %}
{{form.as_p}}
<button type=»submit»>Login</button>
</form>
</body>
</html>

Шаблон для регистрации:

<!— accounts/templates/registration/register.html —>
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Register</title>
</head>
<body>
<h2>Register</h2>
<form method=»post»>
{% csrf_token %}
{{form.as_p}}
<button type=»submit»>Register</button>
</form>
</body>
</html>

4. Создание представлений для регистрации и входа:

Используя встроенные функции Django, мы можем создать представление для регистрации новых пользователей и входа.

#accounts/views.py
от django.contrib.auth import login, authenticate
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()
username = form.cleaned_data.get(‘username’)
password = form.cleaned_data.get(‘password1’)
user = authenticate(username=username, password=password)
login(request, user)
return redirect(‘home’)
else:
form = UserCreationForm()
return render(request, ‘registration/register.html’, {‘form’: form})

5. Настройка URL для учетных записей:

Добавьте соответствующие URL-пути к вашему приложению `accounts`.

#accounts/urls.py
от django.urls import path
from . import views

urlpatterns = [
path(‘register/’, views.register, name=’register’),
]

Не забудьте подключить URL-пути приложения `accounts` к главному `urls.py` вашему проекту.

#myproject/urls.py
from django.contrib import admin
от django.urls import include, path

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘accounts/’, include(‘accounts.urls’)), # Подключение URL-ов аккаунтов
path(‘accounts/’, include(‘django.contrib.auth.urls’)), # Подключение встроенных URL аутентификации
]

6. Настройка редиректоров после входа/выхода:

Вы можете настроить редирект после входа или выхода, добавив следующие параметры в файл `settings.py`:

#myproject/settings.py

LOGIN_REDIRECT_URL = ‘home’
LOGOUT_REDIRECT_URL = ‘home’

7. Создание домашней страницы (Home):

Создайте простое представление и шаблон для домашней странички, чтоб юзеры могли созидать, что они удачно вошли в систему.

Представление:

#myapp/views.py
from django.shortcuts import render

def home(request):
return render(request, ‘home.html’)

URL-путь:

#myproject/urls.py
from django.contrib import admin
от django.urls import include, path
from myapp import views as myapp_views

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘accounts/’, include(‘accounts.urls’)),
path(‘accounts/’, include(‘django.contrib.auth.urls’)),
path(», myapp_views.home, name=’home’), # Главная страница
]

Шаблон:

<!— templates/home.html —>
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<meta name=»viewport» content=»width=device-width, initial-scale=1.0″>
<title>Home</title>
</head>
<body>
<h2>Welcome to the Home Page!</h2>
{% if user.is_authenticated %}
<p>Hello, {{user.username}}. <a href=»{% url ‘logout’ %}»>Logout</a></p>
{% else %}
<p>Те, что не logged in. <a href=»{% url ‘login’ %}»>Login</a> | <a href=»{% url ‘register’ %}»>Register</a></p>
{% endif %}
</body>
</html>

8. Тестирование функциональности:

Убедитесь, что вы создали суперпользователя для доступа к админ-панели: python manage.py createsuperuser

Затем запустите сервер разработки: python manage.py runserver

Посетите домашнюю страницу по адресу http://127.0.0.1:8000/ и протестируйте регистрацию, вход и выход из системы.

Тест Python. Пользовательские учетные записи.

Заключение: В Django создание пользовательских аккаунтов

Создание и управление пользовательскими учетными записями в Django очень удобно благодаря встроенным функциям фреймворка. Вы можете легко настроить систему проверки подлинности, регистрации и управления сессиями пользователей, используя встроенные формы и URL-пути. Django также позволяет расширять стандартные функциональные возможности, если у вас есть специфические требования к аккаунтам пользователей.