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

Создайте API REST, используя Python Джанго – часть 2 🐍

Соглашение * 🤓introduction * 🧠 План * 📚terminology * 🦄entity … Tagged с JavaScript, Django, программированием, Python.

Построение 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”