Разработка Web API на Django с помощью Django REST framework: от создания моделей до тестирования

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Django REST framework (DRF) - это мощный и гибкий инструмент для создания Web API на основе Django. Он предоставляет удобные средства для создания RESTful API, поддерживает аутентификацию, авторизацию, сериализацию, валидацию и другие функции.

В этой статье мы рассмотрим, как использовать Django REST framework для создания Web API на базе Django.

Шаг 1: Установка Django REST framework

Первым шагом является установка Django REST framework. Вы можете установить его с помощью pip:

pip install djangorestframework

Шаг 2: Создание проекта Django

Для создания проекта Django используйте команду:

django-admin startproject myproject

Шаг 3: Создание приложения Django

Создайте приложение Django с помощью команды:

python manage.py startapp myapp

Шаг 4: Настройка Django REST framework

INSTALLED_APPS = [
    ...
    'rest_framework',
    'myapp',
]

Добавьте REST framework middleware в MIDDLEWARE в файле settings.py:

MIDDLEWARE = [
    ...
    'rest_framework.middleware.AuthenticationMiddleware',
    'rest_framework.middleware.AuthorizationMiddleware',
]

Шаг 5: Создание модели Django

Определите модель Django в файле models.py вашего приложения:

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

Шаг 6: Создание сериализатора Django REST framework

Определите сериализатор Django REST framework в файле serializers.py вашего приложения:

from rest_framework import serializers
from myapp.models import Product

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = ['id', 'name', 'description', 'price', 'created_at', 'updated_at']

Шаг 7: Создание представления Django REST framework

Определите представление Django REST framework в файле views.py вашего приложения:

from rest_framework import generics
from myapp.models import Product
from myapp.serializers import ProductSerializer

class ProductList(generics.ListCreateAPIView):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

class ProductDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Product.objects.all()
    serializer_class = Product

Шаг 8: Настройка маршрутов Django REST framework

Определите маршруты Django REST framework в файле urls.py вашего приложения:

from django.urls import path
from myapp.views import ProductList, ProductDetail

urlpatterns = [
    path('products/', ProductList.as_view(), name='product-list'),
    path('products/<int:pk>/', ProductDetail.as_view(), name='product-detail'),
]

Шаг 9: Запуск приложения Django

Запустите приложение Django с помощью команды:

python manage.py runserver

Шаг 10: Тестирование Web API

Откройте веб-браузер и перейдите по адресу http://127.0.0.1:8000/products/. Вы должны увидеть список всех продуктов.

Чтобы создать новый продукт, отправьте POST-запрос на http://127.0.0.1:8000/products/ с данными в формате JSON:

{
    "name": "Product 1",
    "description": "Description for Product 1",
    "price": 10.99
}

Чтобы получить детали конкретного продукта, отправьте GET-запрос на http://127.0.0.1:8000/products/1/, где 1 - идентификатор продукта.

Чтобы обновить продукт, отправьте PUT-запрос на http://127.0.0.1:8000/products/1/ с данными в формате JSON:

{
    "name": "Updated Product 1",
    "description": "Updated Description for Product 1",
    "price": 12.99
}

Чтобы удалить продукт, отправьте DELETE-запрос на http://127.0.0.1:8000/products/1/.

В этой статье мы рассмотрели, как использовать Django REST framework для создания Web API на базе Django. Django REST framework предоставляет удобные средства для создания RESTful API, поддерживает аутентификацию, авторизацию, сериализацию, валидацию и другие функции. С его помощью вы можете быстро и легко создавать мощные и гибкие Web API на базе Django.

Источник: https://habr.com/ru/post/722054/


Интересные статьи

Интересные статьи

Не подлежит сомнению, что высококачественные размеченные массивы данных играют критичную роль в разработке новых алгоритмов глубокого обучения. Однако понимание ML и глубокого обучения по-прежнему о...
В прошлой части мы в общих чертах рассмотрели, как устроен REST API на DRF при работе на чтение. Едва ли не самый сложный для понимания этап — сериализация. Вооружившись исходным кодом, п...
Радиоактивный пепел от нескольких тысяч ядерных боеголовок словно одеяло покроет Землю и начнется «Ядерная зима»… А, стоп. Или не начнется? Надеюсь, что практический эксперимент человеч...
Kubernetes API Server вылетел с ошибкой (OOMKilled) Прошло больше года с нашего [компании Pinterest] перехода на платформу Kubernetes. С тех пор мы разработали множество новых функц...
Разработчиками из Эдинбургского Университета представлен новый алгоритм для создания реалистичных движений персонажей в играх. Обученная на Motion Capture траекториях нейросеть пытается копир...