Как сделать авторизацию в django?

Пользователь

от sherwood_littel , в категории: Python , год назад

Как сделать авторизацию в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hattie , 5 месяцев назад

@sherwood_littel 

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

  1. Включить приложение auth в файле INSTALLED_APPS вашего проекта:
1
2
3
4
5
INSTALLED_APPS = [
    ...
    'django.contrib.auth',
    ...
]


  1. Прописать необходимые URL в файле urls.py:
1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
]


  1. Создать формы аутентификации и регистрации в файле forms.py:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm

class SignUpForm(UserCreationForm):
    email = forms.EmailField(max_length=254, required=True, widget=forms.EmailInput())
    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

class LoginForm(AuthenticationForm):
    pass


  1. Создать представления для аутентификации и регистрации в файле views.py:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from django.shortcuts import render, redirect
from django.contrib.auth import login, logout
from .forms import SignUpForm, LoginForm

def signup_view(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
    else:
        form = SignUpForm