Django регистрация через RestAPI

Метки: / / /

В этой статье мы рассмотрим как делается регистрация пользователя Django через rest-framework, это очень просто.

Но перед тем как прочитать эту статью, посмотрите «Быстрый старт Django», если вы не знаете как создать проект на Django.

Подключение библиотек:

Первым делом нужно скачать нужные библиотеки для работы с этим, для этого видите в терминал или консоль вот эти команды.

В начале мы скачиваем rest-framework для Django, который добавляет в него логику RestAPI, следующие скачивание, это библиотека Djoser, которая сделана просто для обычной авторизации.

Дальше подключаем в «settings.py», в список INSTALLED_APPS всё что мы скачали.

Настройка библиотек:

Теперь настраиваем библиотеки, в начале добавляем список REST_FRAMEWORK.

Также добавляем список DJOSER.

Тут вы скорее всего заметили название параметр SEND_ACTIVATION_EMAIL с параметром False, это нужно что бы при регистрации не отправлялась почта для подтверждение EMAIL, но так нужно делать только если вы разрабатываете на локальном сервере.

Последние добавляем в «urls.py», новые пути для работы регистрации и авторизации, которые мы будем использовать.

После этого у вас в целом всё должно работать, но для более глубокого примера мы ещё сделаем пользователя.

Создание пользователя и регистрации:

Перейдём к созданию пользователя, для этого создайте приложение используя эту команду.

У вас должна появится папка «users», там переходим во файл «models.py» и в нём создаём модель пользователя.

models.py:

Тут в начале добавили все зависимости и сделали класс для работы с моделью пользователя, внутри него создали три метода, первый для создания пользователя, внутри него проверяем, есть ли Email и Логин, если нет, то выводим сообщение об этом.

Дальше создаём пользователя, передаём туда в качестве параметров Email и логин, также  есть **extra_fields, это нужно если надо добавит дополнительные параметры, которые мы будем делать при создание администратора, сохраняем пароль и пользователя, возвращаем его.

Остальные два метода, это создание обычного пользователя и создание администратора, вот и всё.

Теперь когда с первым классом разобрались, делаем второй, который для пользователя.

Тут мы создали класс пользователя наследуем его от двух других классов, AbstractBaseUser, базовый абстрактный класс пользователя и PermissionsMixin, это класс для прав доступа.

Внутри него пишем параметры:

  • id — Идентификатор;
  • username — Логин или имя пользователя;
  • email — Электронная почта;
  • is_active — Поле статуса активации пользователя;
  • is_staff — Поле статуса админа;

В этом коде самое интересное то, что для поля активации мы принимаем параметр default=True, это значит то, что по умолчанию пользователь будет активирован.

Свойства USERNAME_FIELD, это идентификатор для обращения, а REQUIRED_FIELDS хранит список имён при регистрации администратор или суперюзера.

Также создаём objects, и в него добавляем класс MyUserManager, что бы могли использовать его методы.

Теперь нужно сделать миграции, для этого вводим эти две команды.

На этом с моделями всё, тут больше не чего сказать.

serializers.py:

Теперь создаём файл «serializers.py», в папке «users» и пишем в нём такой код.

В начале как всегда подключаем нужные нам компоненты, потом создаём класс UserRegistrSerializer, наследуем его от класса ModelSerializer, в нём первым делом создаём поле password2, для повторного пароля.

Потом идёт класс Meta, в котором идёт настройка полей, которые будет принимать сервер, первое свойство, это откуда взять поля, второе список полей.

После класса создаём метод для создания нового пользователя, в нём делаем новый объект класса User, проверяем совпадают ли пароли и сохраняем, возвращаем нового пользователя, тут файлам.

views.py:

Последние что осталось рассмотреть, это файл «views.py», вот он.

В начале как обычно подключаем все нужные нам зависимости, для чего какая нужна посмотрите к комментариях кода, потом создаём класс RegistrUserView, он у нас будет отвечать за всё регистрацию, самым первым там идут свойства, опять же про них подробнее прочитаете в комментариях.

Потом идёт метод post, и как можно понять из названия, он будет работать только если получает POST запросы от клиента, внутри его мы первым делом создаём объект serializer, класса UserRegistrSerializer, там в качестве параметра data передаём request (запрос), который получаем от клиента.

Потом проверяем на валидность,  если всё правильно, то сохраняем и выводим что ошибок нет, если не правильно, то показываем ошибки.

На этом создании регистрации закончилась, осталось только во файл «urls.py», в список urlpatterns добавить путь до него.

Теперь точно всё, переходим на страницу регистрации и вот что должно появится.

Вот, если у вас появилось что то типа этого, то значит всё правильно.

Вывод:

В этой статье вы прочитали как сделать регистрация пользователя Django через rest-framework, но если вам нужна более обычная регистрация, то посмотрите статью «Как сделать регистрацию на Django».

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Поделится:

Также рекомендую: