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