Построение API REST с Python Django (4 серии деталей)
Соглашение * 🤓 Введение * 🧠 План * 📚 Терминология * 🦄 Enting и отношения * 🌎 Создать проект * 🙏 БЛАГОДАРЮ ВАС
🤓 Введение
Здравствуйте, мои дорогие хакеры! Добро пожаловать, ко второй части серии «Построение API остального с Python Django». Я надеюсь, что у вас все отличный день, сегодня большой день, мы начнем планирование и реализация REST API с использованием Python Django Rest Framework.
Пожалуйста, не стесняйтесь общаться со мной через Twitter , Instagram или LinkedIn
🧠 ПЛАН
Позвольте мне объяснить план. Не волнуйтесь, я тоже дам визуальный пример 😎 Мы собираемся построить REST API, обрабатывающие данные компании для сотрудников, секторов и проектов! Каждый сотрудник, сектор и проект описаны с конкретными атрибутами, которые обычно имеют некоторое значение для пользователя, потребляющего данные. Позвольте мне показать вам диаграмму, и я опишу каждый сущность отдельно, а также Отношения среди них. Во-первых, давайте прямо на нашей терминологии.
📚 Терминология
- Отношение – Таблица с рядами и столбцами
- Атрибут – названная столбец отношения
- Атрибут домен – Набор разрешенных значений для атрибута
- Кардинальность – Количество экземпляров данных (строки) в отношении
- Ключ отношения – Атрибут или набор атрибутов, которые уникально идентифицируют каждый экземпляр данных
- Первичный ключ – Ключ -кандидат, который выбран для определения каждого экземпляра данных уникальным образом
- Иностранный ключ – Атрибут или набор атрибутов, полученных в сочетании с первичным ключом (ключ кандидата) какого-то другого отношения
- Целостность сущности – Нет атрибутов первичного ключа может иметь значение нулевого – ни один первичный ключ не может быть нулевым
- Ссылочная целостность – Значения внешнего ключа должны быть равны значению для ключа -кандидата конкретного экземпляра данных в начальном соотношении или могут иметь значение нулевого
🦄 Сущности и отношения
Наша диаграмма описывает:
Сотрудник -сотрудник – Каждый сотрудник имеет Атрибуты ; Имя, которое является составным атрибутом и включает в себя имя, второе имя и фамилия. Кроме того, у нас есть пол, адрес, зарплата и уникальный идентификатор идентификатора. Секторная сущность – Имя, местоположение и уникальный идентификатор. Проектная сущность – Расположение имени и уникальный идентификатор.
Отношения 1 – Отношения между сотрудниками и сектором. Каждый сотрудник работает только в одном секторе, и в каждом секторе может быть много сотрудников. Отношения 2 – Отношения между сектором и проектом. Каждый сектор может отвечать за несколько проектов, но этот конкретный проект назначается конкретному сектору. Отношения 3 – Отношения между сотрудниками и проектом. Каждый сотрудник может работать над несколькими проектами, и на каждом проекте работают несколько сотрудников.
Итак, давайте перейдем к бизнесу и начнем создавать наш проект! 🚀
🌎 Создайте проект
Мы начнем с создания нашего проекта, и мы будем использовать GUI Pycharm для этого.
- Открыть пичам
- Нажмите «Создать новый проект» – убедитесь, что вы выбрали правильный базовый интерпретатор
- После инициализации виртуальной среды вы должны увидеть что -то подобное в дереве каталогов своих проектов
- Откройте терминал внизу слева в Pycharm IDE
- Установите Django, выполнив этот код
pip install django
- Установите Framework Django REST, выполнив следующий код
pip install djangorestframework
- Настройте новый проект с одним приложением
django-admin startproject company . cd company django-admin startapp API cd ...
Итак, мы создали наш проект , Компания Проект и наш Приложение В пределах Проект что мы назвали API.
Давайте теперь установим psycopg2 Адаптер для базы данных PostgreSQL.
pip install psycopg2
Зарегистрируйте структуру REST и наше приложение, перейдя в файл FULESS.PY и добавьте это в свой insted_apps.
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'company.API' ]
Перейдите в PGADMIN и создайте новую базу данных, я назову свою компанию базы данных, вы можете назвать свою, как вы хотите.
В ваших настройках.
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'company', 'USER': 'postgres', 'PASSWORD': 'put_postgre_password_here', 'HOST': 'localhost', 'PORT': '5432' } }
Создайте serializers.py в вашем каталоге API. Давайте создадим наш пользовательский сериализатор и сериализатор группы пользователей. Добавьте этот код в свой файл serializers.py:
from django.contrib.auth.models import User, Group from rest_framework import serializers class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ['url', 'username', 'email', 'groups'] class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group fields = ['url', 'name']
И добавьте этот код в файл views.py:
from django.contrib.auth.models import User, Group from rest_framework import viewsets from rest_framework import permissions from company.API.serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ queryset = User.objects.all().order_by('-date_joined') serializer_class = UserSerializer permission_classes = [permissions.IsAuthenticated] class GroupViewSet(viewsets.ModelViewSet): """ API endpoint that allows groups to be viewed or edited. """ queryset = Group.objects.all() serializer_class = GroupSerializer permission_classes = [permissions.IsAuthenticated]
Внутри вашего urls.py добавьте следующий код.
from django.urls import include, path from rest_framework import routers from company.API import views router = routers.DefaultRouter() router.register(r'users', views.UserViewSet) router.register(r'groups', views.GroupViewSet) # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. urlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]
Выполните миграцию для синхронизации вашей базы данных в первый раз:
python manage.py migrate
Вы должны увидеть что -то подобное в своем терминале:
Теперь давайте создадим суперпользователь, который мы будем использовать для входа в нашу панель администратора.
python manage.py createsuperuser --email admin@example.com --username admin
После выполнения этой строки вам придется указать свой пароль, вы можете изменить свой пароль в любое время.
Давайте запустим наш проект!
python manage.py runserver
Вот и все! 🎉 Мы создали наш первый проект, перейдите в ваш браузер, перенаправить в Http://127.0.0.1:8000/ И вы получите свой API.
Вот и сейчас, в нашей следующей главе мы создадим наши модели для API и взглядов нашей компании.
Следите за обновлениями! 🚀
Список литературы: школьные заметки … Школьные книги…
Пожалуйста, оставьте комментарий, расскажите мне о своей работе, прокомментируйте ваши мысли, свяжитесь со мной!
☕ Поддержите меня и держите меня сосредоточенным!
Хорошо провести время взлома! 😊
Построение API REST с Python Django (4 серии деталей)
Оригинал: “https://dev.to/codespresso/build-the-rest-api-using-python-django-part-2-2ln3”