Призначені для користувача облікові записи 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
from 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
from 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
from 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
from 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>You are not 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 є дуже зручним завдяки вбудованим функціям фреймворку. Ви можете легко налаштувати систему автентифікації, реєстрації та управління сесіями користувачів, використовуючи вбудовані форми та URL-шляхи. Django також дозволяє розширювати стандартні функціональні можливості, якщо у вас є специфічні вимоги до облікових записів користувачів.