Налаштування Django API з Django REST Framework (DRF): Посібник для початківців

pic

Фото Джеймса Гаррісона на Unsplash

Django Rest Framework (DRF) — потужний інструмент для створення надійних API за допомогою фреймворку Django. У цьому посібнику ми покроково розглянемо, як налаштувати API на Django з використанням DRF. Цей посібник припускає, що у вас встановлений Python і ви знайомі з базовими командами Python.

Попередні вимоги

Перед початком переконайтеся, що:

  • У вас встановлений Python версії 3.8 або вище.
  • У вас встановлений pip (менеджер пакетів Python).

Крок 1: Встановлення необхідних пакетів

Для початку вам потрібно встановити Django та DRF. Виконайте наступні команди в терміналі:

pip install django djangorestframework

Перевірте встановлення:

django-admin --version

Крок 2: Створення нового проекту Django

Тепер давайте створимо новий проект. Замініть myproject на бажану назву вашого проекту.

django-admin startproject myproject  
cd myproject

Крок 3: Створення додатку Django

Django організовує проекти в додатки. Створимо додаток для нашого API. Замініть api на бажану назву вашого додатку:

python manage.py startapp api

Крок 4: Додавання додатку та DRF у settings.py

Відкрийте файл settings.py у вашій папці проекту та оновіть список INSTALLED_APPS, додавши ваш додаток та DRF:

INSTALLED_APPS = [  
 'django.contrib.admin',  
 'django.contrib.auth',  
 'django.contrib.contenttypes',  
 'django.contrib.sessions',  
 'django.contrib.messages',  
 'django.contrib.staticfiles',  
 'rest_framework', # Додати Django Rest Framework  
 'api', # Додати ваш додаток  
]

Крок 5: Створення простого API-ендпоїнта

Створення моделі Item

У файлі api/models.py визначте просту модель. Наприклад:

from django.db import models  


class Item(models.Model):  
 name = models.CharField(max_length=100)  
 description = models.TextField()  
 def __str__(self):  
 return self.name

Створіть міграцію, це згенерує код, необхідний для створення нової таблиці в базі даних для моделі Item:

python manage.py makemigrations

Запустіть команду міграції, щоб виконати операції з базою даних (якщо ви виконуєте цю команду вперше, вона також застосує стандартні міграції Django для створення таблиць User тощо):

python manage.py migrate

Створення серіалізатора

Серіалізатор у Django Rest Framework (DRF) — це компонент, який займається серіалізацією та десеріалізацією. Він перетворює вашу модель бази даних у формат JSON (серіалізація) або приймає JSON-дані як вхід, перевіряє їх і перетворює на екземпляр моделі Django (десеріалізація).

Створіть файл api/serializers.py зі серіалізатором для моделі Item:

from rest_framework import serializers  
from .models import Item  


class ItemSerializer(serializers.ModelSerializer):  
 class Meta:  
 model = Item  
 fields = '__all__'

Створення виду

Види в Django відповідають за обробку логіки ендпоїнтів, вони приймають запит, виконують певні операції, наприклад...

load model from database, serialize it into JSON format and return the HTTP Response.

У файлі api/views.py додайте вид, використовуючи APIView від DRF:

from rest_framework.views import APIView  
from rest_framework.response import Response  
from .models import Item  
from .serializers import ItemSerializer  


class ItemsView(APIView):  
 def get(self, request):  
 items = Item.objects.all()  
 serializer = ItemSerializer(items, many=True)  
 return Response(serializer.data)  

 def post(self, request):  
 serializer = ItemSerializer(data=request.data)  
 if serializer.is_valid():  
 serializer.save()  
 return Response(serializer.data, status=201)  
 return Response(serializer.errors, status=400)

Налаштування URL

Створіть файл urls.py у каталозі api та визначте маршрут для API:

from django.urls import path  
from .views import ItemsView  


urlpatterns = [  
 path('items/', ItemsView.as_view(), name='items'),  
]

Потім додайте URL додатку в головний urls.py:

from django.contrib import admin  
from django.urls import path, include  


urlpatterns = [  
 path('admin/', admin.site.urls),  
 path('api/', include('api.urls')), # Додати цей рядок  
]

Крок 6: Увімкнення UI браузера для DRF

Django Rest Framework надає зручний інтерфейс браузера для API "з коробки". Коли ви використовуєте APIView або інші види DRF, інтерфейс для браузера автоматично активується у вашому середовищі розробки.

Щоб переконатися, що ця функція доступна, перевірте, чи містить налаштування REST_FRAMEWORK у файлі settings.py:

REST_FRAMEWORK = {  
 'DEFAULT_RENDERER_CLASSES': [  
 'rest_framework.renderers.JSONRenderer',  
 'rest_framework.renderers.BrowsableAPIRenderer',  
 ],  
}

Це дозволить вам:

  • Тестувати ваше API інтерактивно, використовуючи веб-браузер.
  • Переглядати відповіді як у форматі JSON, так і в зрозумілому для людини вигляді.

Крок 7: Тестування API

Запустіть сервер розробки:

python manage.py runserver

Доступ до UI браузера для API

Перейдіть за посиланням http://127.0.0.1:8000/api/items/ у вашому браузері, щоб переглянути UI для браузера, наданий DRF.

  • POST: Використовуйте форму в UI для створення нових об’єктів Item, заповнивши поля.

Введіть цей код у поле content і натисніть POST

{  
 "name": "My item",  
 "description": "This is a test item"  
}

pic

Відповідь на POST — Новий елемент було створено

  • GET: UI відобразить усі існуючі об’єкти Item.

pic

Резюме

Вітаємо! Ви налаштували просте Django API за допомогою Django Rest Framework з використанням стандартного інтерфейсу браузера для API.

Для отримання додаткової інформації ознайомтеся з документацією Django Rest Framework.

Перекладено з: Setting Up a Django API with Django REST Framework (DRF): A Beginner’s Guide

Leave a Reply

Your email address will not be published. Required fields are marked *