Пользовательские учётные записи 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 также позволяет расширять стандартные функциональные возможности, если у вас есть специфические требования к аккаунтам пользователей.