Рубрики
Без рубрики

Система аутентификации Django – Учебник для начинающих

Узнайте, как управлять пользователями в Django с легкостью – Учебник для начинающих. Теги с новичками, Джанго, Питоном, Учебником.

Hello Coders,

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

Спасибо за прочтение! – Содержание, предоставленное Генератор приложений Отказ

Темы, покрытые в этом руководстве

  • Пользователь – основной объект, используемый для управления информацией о авторизации
  • Как создать новый пользователь с помощью Django CLI
  • Как создать суперпользователь
  • Создайте пользователя, используя пользовательские интерфейсы (формы, контроллер, просмотр)

Пользовательская модель

Как уже упоминалось в официальной документации Django, пользовательская модель представляет основной объект, используемый для сохранения и управления аутентификацией. Поля, управляемые Пользователь Модель можно найти ниже:

Вероятно, самый простой способ создания нового пользователя в Django – использовать CLI (Shell django). Если у вас нет уже проекта Django, не стесняйтесь клонировать Образец с открытым исходным кодом Предоставляется командой Apsseed, чтобы объяснить много концепций Django:

$ git clone https://github.com/app-generator/django-learn-by-coding.git
$ cd django-learn-by-coding

Создать виртуальную среду – Linux на основе систем

$ virtualenv env
$ source env/bin/activate 

Для системы Windows синтаксис другой:

$ virtualenv env
$ .\env\Scripts\activate 

Установить Django

$ pip install django

Создать пользователей – Django CLI

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

$ # We are in the ROOT of the project
$ python manage.py createsuperuser
sername (leave blank to use 'test'): admin
Email address: test@appseed.us
Password: ********
Password (again): ********
Superuser created successfully. 

Однажды Суперзор Admin создан, мы можем получить доступ к админ Раздел и взаимодействовать со всеми моделями, зарегистрированными нашим проектом. Давайте исследуем пользователей, используя Django CLI:

>>> from django.contrib.auth.models import User 
>>> User.objects.all()                         
]>

Используя CLI, мы можем исследовать все свойства и полей обновления курсов.

Создать новый (обычный) пользователя

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('test', 'test@appseed.us', 'Super_S3cret111')

Мы можем видеть, что новые пользователи могут быть созданы с легкостью, используя помощника пользователя Create-User, предоставляемый пользовательской моделью – давайте еще раз проверим все зарегистрированные пользователи в терминале:

>>> >>> User.objects.all()         
, ]>

Создайте пользователей через интернет-пользователь

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

Создайте форму регистрации

class SignUpForm(UserCreationForm):
    username = forms.CharField(
        widget=forms.TextInput(
            attrs={
                "placeholder" : "Username"
            }
        ))
    email = forms.EmailField(
        widget=forms.EmailInput(
            attrs={
                "placeholder" : "Email"
            }
        ))
    password1 = forms.CharField(
        widget=forms.PasswordInput(
            attrs={
                "placeholder" : "Password"
            }
        ))
    password2 = forms.CharField(
        widget=forms.PasswordInput(
            attrs={
                "placeholder" : "Password check"
            }
        ))

Создайте контроллер

def register_user(request):

    # A user-friendly message 
    msg = None

    # User submits the credentials 
    if request.method == "POST":

        # Initialize the from POST data
        form = SignUpForm(request.POST)

        # Check all constraints (one line)
        if form.is_valid():

            # Create the user
            form.save()

            msg     = 'User created successfully.'

        else:
            msg = 'Form is not valid'    

    # Show the SignUp Page 
    else:
        form = SignUpForm()

    return render(request, "accounts/register.html", {"form": form, "msg" : msg })

Страница, которая показывает форму и пригласить пользователю для регистрации

{% csrf_token %}
{{ form.username }}
{{ form.username.errors }}
{{ form.email }}
{{ form.email.errors }}
{{ form.password1 }}
{{ form.password1.errors }}
{{ form.password2 }}
{{ form.password2.errors }}

Механизм регистрации пользователя

  • Пользователь видит страницу регистрации
  • Пользователь вводит все поля
  • Форма отправляется, и контроллер получает всю информацию (имя пользователя, пароль)
  • Если форма действительна, форма сохраняется, и пользователь создан
  • Сообщение подтверждения возвращается пользователю

Приведенный выше образец использует форму для создания пользователя, но мы можем обновить код для использования Создать-пользователь Способ также:

def register_user(request):

    # A user-friendly message 
    msg = None

    # User submits the credentials 
    if request.method == "POST":

        # Initialize the from POST data
        form = SignUpForm(request.POST)

        # Check all constraints (one line)
        if form.is_valid():

            username     = form.cleaned_data.get("username")  # <-- UPDATED      
            email        = form.cleaned_data.get("email")     # <-- UPDATED 
            raw_password = form.cleaned_data.get("password1") # <-- UPDATED

            # Create user: UPDATED
            new_user = User.objects.create_user(username, email, raw_password)

            msg     = 'User created successfully.'

        else:
            msg = 'Form is not valid'    

    # Show the SignUp Page 
    else:
        form = SignUpForm()

    return render(request, "accounts/register.html", {"form": form, "msg" : msg })

Спасибо за прочтение! Не стесняйтесь AMA в разделе комментариев. Для получения дополнительных ресурсов, пожалуйста, доступа к:

  • Узнайте больше о Джанго (Официальные документы)
  • Начните быстро новый проект, используя Reading Development Django начала

Оригинал: “https://dev.to/sm0ke/django-authentication-system-4ha9”