На прошлой лекции мы узнали о существовании Django REST Framework (DRF), библиотеки для создания REST API на базе Django. Она существенно упрощает нам жизнь в аспектах, связанных с реализацией функциональности API.
С DRF ваш API будет не только функциональным, но и "красивым" — встроенная документация и пользовательский интерфейс
для тестирования запросов идут прямо из коробки! Давайте установим и настроим этот полезный инструмент.
Шаг 1: требования к установке DRF
Перед установкой убедимся, что наша среда готова к работе с Django REST Framework:
- Python: убедитесь, что установлен Python версии 3.6 или выше. DRF любит современный Python, так что старика Python 2 сюда уже не берём.
- Django: на момент подготовки этой лекции, DRF поддерживает Django 3.2 и выше. Убедитесь, что у вас установлена одна из совместимых версий.
Всё на месте? Поехали дальше.
Шаг 2: Установка Django REST Framework
Мы будем использовать pip, чтобы не заниматься ручной магией в консоли:
# Устанавливаем DRF с помощью pip
pip install djangorestframework
Если хотите проверить текущую версию установленного DRF, введите:
python -m pip show djangorestframework
Должно появиться что-то вроде:
Name: djangorestframework
Version: <версия>
Summary: Web APIs for Django.
🎉 DRF установлен? Отлично! Но подождите, это ещё не всё.
Шаг 3: Настройка проекта для работы с DRF
Установка — дело десяти секунд, а вот настройка — уже более тонкое искусство. Давайте сделаем всё правильно и структурированно.
- Подключение DRF к проекту
Для начала убедитесь, что наш проект "знает" о существовании DRF. Зайдите в файл settings.py вашего Django проекта и добавьте 'rest_framework' в список приложений INSTALLED_APPS:
INSTALLED_APPS = [
# Системные и базовые приложения Django
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Приложение DRF
'rest_framework',
]
- Добавляем настройки DRF (опционально)
DRF предоставляет возможность тонкой конфигурации через параметры в settings.py. Пока что мы добавим базовую настройку, которая пригодится в будущем:
REST_FRAMEWORK = {
# Настройки аутентификации можно будет менять в будущем
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
],
# Настройки разрешений (доступа)
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny', # Пока что, разрешаем доступ всем
]
}
эти параметры особенно важны, когда вы будете разрабатывать сложные системы с ограничением доступа. Пока оставим всё максимально простым.
Шаг 4: Проверка установки
Чтобы убедиться, что DRF настроен правильно, мы создадим минимальный набросок API, который вернёт нам какие-нибудь данные. Это займет всего пару минут!
Пример простого API
Создайте новый файл views.py в одном из ваших приложений с примером простого представления:
from django.http import JsonResponse
def example_api_view(request):
return JsonResponse({"message": "Hello, Django REST Framework!"})
Теперь добавьте маршрут для этого представления в urls.py:
from django.contrib import admin
from django.urls import path
from .views import example_api_view # Импортируем наше представление
urlpatterns = [
path('admin/', admin.site.urls),
path('api/example/', example_api_view), # Регистрируем наш API-эндпоинт
]
Запустите сервер:
python manage.py runserver
Если вы перейдёте на http://127.0.0.1:8000/api/example/, вы должны увидеть:
{"message": "Hello, Django REST Framework!"}
Ну как вам? DRF уже позволяет вам создавать API даже без особых усилий.
Типичные ошибки при установке и настройке DRF
Работая с DRF впервые, можно наткнуться на ряд "граблей". Вот самые популярные из них:
Ошибка "Module not found" при добавлении 'restframework' в INSTALLEDAPPS: это значит, что DRF не был установлен. Убедитесь, что вы действительно установили его через
pip install djangorestframework.Ошибка при импорте JsonResponse: проверьте правильность импорта:
from django.http import JsonResponse.Не работает маршрут (
Page not found): убедитесь, что маршрут прописан корректно и сервер перезапущен.Проблема с версиями: если DRF вас "ругает" на версии, проверьте, что вы используете Python 3.6+ и совместимую с DRF версию Django.
Реальное применение знаний
Теперь у вас есть установленный и настроенный DRF, готовый к работе. Вы можете начать создавать API для ваших проектов, интегрировать мобильные приложения, работать с фронтенд-разработчиками или даже строить свой собственный сервер для сторонних сервисов.
Django REST Framework используется в реальных крупных проектах, таких как OpenStack. Ваши знания не только помогут решить задачи на собеседовании, но и дадут вам инструмент, с которым можете создавать API любого уровня сложности.
Теперь DRF готов к дальнейшей работе, вперёд к следующей лекции, где начнём строить реальный API!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ