Создание веб API на Django
Вы, наверное, слышали, что лучший способ учиться - это делать. Итак, в этом пошаговом руководстве мы будем создавать RESTful API с Django и Django REST Framework. Проект будет приложением планировщика событий, вроде мини-версии Eventbrite или meetup.com.
Ключевыми функциями будут пользователи для создания событий, а другие зарегистрированные пользователи могут отмечать для посещения созданных событий. Мы также рассмотрим, как просмотреть событие и как установить проверки, чтобы гарантировать, что только те участники, которые присутствовали на нем, могут просматривать любое событие. Надеемся, что к концу этой серии вы также сможете применить некоторые концепции здесь для создания собственных REST API с помощью Django.
Вы найдете код проекта на github.
Пошаговое руководство будет разделено на три основные части для удобства чтения, чтобы не вводить в заблуждение слишком много концепций одновременно.
- Введение и настройка проекта.
- Регистрация, аутентификация и авторизация пользователей с помощью веб-токенов JSON (JWT) и djoser.
- Конечные точки создания событий и посещаемости.
Я постараюсь следовать аналогичной структуре в каждом посте. Это будет главным образом включать:
- Создание модели.
- Сериализаторы, представления API и их изменение в соответствии с нашими потребностями.
- Создание классов разрешений для наших конечных точек.
- Написание автоматических модульных тестов для конечных точек.
- Демо с postman.
Настройка проекта
Для этого проекта нам нужно установить Python 3+. Далее нам нужно создать виртуальные среды для установки зависимостей проекта.
Установить virtualenv
pip install virtualenv
Создать новый virtualenv
virtualenv yourenvname -p python3.6
Активировать виртуальную среду
source yourenvname/bin/activate
Запустите эту команду в каталоге, в котором была создана виртуальная среда.
Как только ваша виртуальная среда активирована, нам понадобится ряд зависимостей для проекта.
Джанго и Django rest framework
pip install django djangorestframework
Djoser: REST-реализация системы аутентификации Django.
Библиотека Djoser предоставляет набор представлений и конечных точек Django Rest Framework для выполнения основных действий, таких как регистрация, вход в систему, выход из системы, сброс пароля и активация учетной записи. Вы могли бы создавать функции самостоятельно, но у этого есть большинство функций, которые вы можете в конечном итоге создать.
pip install djoser
django-rest-framework-simplejwt
Предоставляет серверную часть аутентификации веб-токена JSON для REST Framework Django.
pip install djangorestframework_simplejwt
Как правило, если у вас много проектных зависимостей в python, желательно поместить их в файл requirements.txt и установить их одной командой.
pip install -r requirements.txt
Чтобы запустить новый проект django, запустите следующее после активации ранее созданной виртуальной среды.
django-admin startproject eventScheduler
Теперь начнем с первого приложения, которое нам потребуется для следующего раздела:
cd eventScheduler
python manage.py startapp accounts 
Пока все хорошо, я надеюсь. Если вы выполнили следующие шаги, наше приложение должно иметь следующую структуру:
./eventScheduler
├── accounts
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── eventScheduler
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   └── settings.cpython-35.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
https://lewiskori.com/post/building-web-apis-with-django
Вернуться на верх