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

Создайте API REST с помощью Python Django – Часть 4 🐍

Соглашение * 🤓intro * 🔗 URLS * 👨🏻‍💻serializers * 👁‍🗨views … Tagged с JavaScript, Django, программированием, Python.

Соглашение * 🤓 Intro * 🔗 URLS * 👨🏻‍💻 сериализаторы * 👁‍🗨 Просмотры * 🗺 карта URL * 1⃣ Получите конкретную запись * 📣 Outro * 🙏 Спасибо

🤓 Intro

Привет, дорогие хакеры! Добро пожаловать в еще одну статью в блоге «Создание API по созданию API с Python Django». Я очень ценю ваш интерес к таким статьям, и я очень рад, что могу помочь вам узнать что -то новое.

Если вы пропустили предыдущую статью, проверьте:

Создайте API REST, используя Python Django – Часть 3 🐍

CodesPresso ・ 21 февраля ・ 4 мин. Читать

Все, что я делаю в этой статье, и будущие статьи, будет выдвинуто в репозиторий на моем GitHub:

Dwarf95/Pythonjangotutorior

Это официальный репозиторий CodeSpresso Dev.to Tutorial, касающуюся серии «Построить API REST с использованием Python Django».

Это официальный репозиторий CodeSpresso Dev.to Tutorial, касающуюся серии «Построить API REST с использованием Python Django».

  • Настройка база данных PostgreSQL (имя: компания)
  • Редактировать настройки.
  • Вытащите код из этого репозитория
  • Откройте это в пичарме
  • Открыть терминал и выполнить PIP установка -R Требования.txt
  • Запустить Python Manage.py Migrate
  • Запустить Python Manage.py Runserver

Сегодня мы пишем методы получения всех данных из API, а также получить конкретную запись по идентификатору записи.

Пожалуйста, не стесняйтесь общаться со мной через Twitter , Instagram или LinkedIn

Давайте начнем! 🚀

🔗 URL

У нас уже есть наши urls.py в папке нашей компании. Но чего мы хотим достичь, так это сделать нашу карту URL -адресов API следующим образом:

Чтобы все маршруты отображали в/API/… Мы создадим еще один файл в нашей папке API, назовите его urls.py

Прежде чем продолжить этот файл, нам нужно создать наш сериализатор и представления

👨🏻‍💻 Сериализаторы

Сериализаторы позволяют преобразовать сложные данные, такие как запросы и экземпляры модели, в нативные данные Python, которые затем можно легко отображать в JSON, XML или другие типы контента. Сериализаторы также обеспечивают десериализацию, позволяя конвертировать данные обратно в сложные типы после сначала проверки входящих данных.

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

В наших serializers.py Добавьте следующий код (обратите внимание, что я пропустил код, касающийся пользователя, и Grouperializer):

from company.API.models import Employee

class EmployeeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Employee
        fields = '__all__'

Это означает, что мы сериализуем нашу модель Сотрудник и включите все поля, которые предлагает наша модель.

👁‍🗨 Views

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

В вашем файле views.py добавьте следующий код:

from company.API.serializers import UserSerializer, GroupSerializer, EmployeeSerializer
from company.API.models import Employee
from rest_framework.response import Response
from rest_framework.views import APIView


class EmployeeList(APIView):
    """
    List all employees
    """
    def get(self, request, format=None):
        employees = Employee.objects.all()
        serializer = EmployeeSerializer(employees, many=True)
        return Response(serializer.data)

🗺 MAP URL

Прежде чем добавить немного кода в недавно созданный urls.py, перейдите в файл urls.py в папке компании и в блоке urlpatterns Добавьте следующий код:

path('api/', include('company.API.urls'))

Эта часть кода рассмотрит http://127.0.0.1:8000/api/ – Базовый URL – но этот путь отобразит все пути внутри наших недавно созданных urls.py.

Теперь у нас есть наш сотрудник сериализатор и сотрудник Вид Нам нужна конкретная конечная точка, которая отобразит наши данные ответа.

В недавно созданном urls.py добавьте следующий код:

from . import views
from django.urls import path
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
    path('employee/', views.EmployeeList.as_view(), name="employees")
]

urlpatterns = format_suffix_patterns(urlpatterns)

Это отобразит наш ответ на работу с помощью http://127.0.0.1:8000/api/employee/

Теперь мы должны быть готовы получить данные с сервера (пожалуйста, используйте панель администратора, чтобы добавить некоторые данные для сотрудников, прежде чем продолжить).

Запустите следующую команду:

python manage.py runserver

Нажмите Здесь Чтобы увидеть результат в вашем браузере или вручную введите свой URL -бар http://127.0.0.1:8000/api/employee/

Поскольку у меня есть только одна запись в базе данных, вот мой ответ:

Поздравляю! 🎉 Вы создали свой первый запрос GET, вы также можете отправить запрос, используя почтальон, пока я буду придерживаться браузера.

1⃣ Получите конкретную запись

Точно так же, когда мы хотим получить конкретную запись с помощью уникального идентификатора, мы определяем нашу мнение, что мы будем называть hopeedetails, а после этого мы сопоставляем наше представление с конкретным URL.

Вот представление о получении конкретной записи сотрудника с помощью уникального идентификатора

class EmployeeDetails(APIView):
    """Retrieve an employee instance"""

    def get_object(self, pk):
        try:
            return Employee.objects.get(pk=pk)
        except:
            raise Http404

    def get(self, request, pk, format=None):
        employee = self.get_object(pk)
        serializer = EmployeeSerializer(employee)
        return Response(serializer.data)

Как вы можете видеть, мы используем функцию get_object, где мы передаем первичный ключ из экземпляра, который мы просим. У нас есть блок Try-Except кода, где мы определяем, существует ли такой экземпляр, или это не так, мы устраняем ошибку. Ошибка HTTP404 импортируется как от django.http import http404 ;

Теперь мы должны составить на карту наш URL, добавить следующий код в UrlPatterns в недавно созданный файл urls.py.

path('employee/', views.EmployeeDetails.as_view(), name="employee")

Хорошо, мы должны быть готовы получить конкретные данные для одного экземпляра сотрудника. Во -первых, вам нужен первичный ключ, если вы выполняете http://127.0.0.1:8000/api/employee/ Вы увидите, что у каждого сотрудника есть атрибут employeee_id, скопируйте один из работников_идов и выполните этот маршрут https://127.0.0.1:8000/api/employee/paste_your_employee_id_here Вы должны получить один экземпляр с конкретным работником_ид, который вы запросили.

Вот мой 👽

📣 Outro

Итак, мы создали представления для получения данных всех сотрудников и для получения данных одного сотрудника. Логика такая же для модели проекта и сектора. Я призываю вас попробовать и написать их Просмотры , сериализаторы и URLS Сами, но если вы застряли, вы всегда можете искать решение на моем GitHub. В следующей статье мы создадим пост и поместим методы.

Пожалуйста, оставьте комментарий, расскажите мне о своей работе, прокомментируйте ваши мысли, свяжитесь со мной!

☕ Поддержите меня и держите меня сосредоточенным!

Хорошо провести время взлома! 😊

Оригинал: “https://dev.to/codespresso/build-the-rest-api-using-python-django-part-4-nlp”