JavaRush /Курсы /Модуль 3: Django /Установка Graphene-Django и настройка проекта

Установка Graphene-Django и настройка проекта

Модуль 3: Django
24 уровень , 1 лекция
Открыта

На предыдущей лекции мы разобрались, что такое GraphQL, его преимущества и основные концепции. Сегодня мы на практике внедрим поддержку GraphQL в наш проект с использованием библиотеки Graphene-Django. Приготовьтесь к приключению, потому что дальше будет только интереснее!

Установка Graphene-Django

Для работы с GraphQL в Django мы будем использовать библиотеку Graphene-Django. Это высокоуровневая библиотека, которая упрощает создание GraphQL API в проектах Django. Она позволяет интегрировать Django модели, предоставляя удобные инструменты для работы с типизацией и запросами.

Шаг 1: установка зависимостей

Сначала установим необходимые библиотеки для работы с GraphQL в Django:

pip install graphene-django

До этого момента предполагалось, что вы уже создали проект Django и настроили виртуальное окружение. Если нет, вернитесь к предыдущим лекциям по настройке Django.

Также рекомендуется установить GraphiQL, встроенную интерактивную консоль для тестирования GraphQL-запросов. Она поставляется вместе с Graphene-Django, и позже мы её настроим.

Проверка установки: чтобы убедиться, что graphene-django установлен, выполните следующую команду в Python-терминале:

import graphene_django
print(graphene_django.__version__)

Если выводится версия библиотеки, значит, всё готово!

Настройка проекта Django для работы с GraphQL

Теперь, когда мы установили Graphene-Django, пришло время интегрировать его в наш Django-проект. Для этого выполним несколько простых шагов.

Шаг 1: добавление graphene_django в INSTALLED_APPS

Открываем файл настроек settings.py вашего проекта и добавляем graphene_django в список приложений:

INSTALLED_APPS = [
    ...
    "graphene_django",
]

Шаг 2: настройка GraphQL в Django

В settings.py также добавим конфигурацию для GraphQL. Мы определим, что используем Graphene-Django для работы с GraphQL API:

GRAPHENE = {
    "SCHEMA": "your_project.schema.schema"  # Указываем путь до схемы GraphQL (создадим её позже)
}

Не забудьте заменить your_project на имя вашего проекта.

Шаг 3: создание URL для GraphQL

Теперь нам нужно сказать Django, где будет доступен наш GraphQL API. Для этого изменим файл urls.py:

from django.contrib import admin
from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
    path("admin/", admin.site.urls),
    path("graphql/", GraphQLView.as_view(graphiql=True)),  # Включаем GraphiQL
]

Обратите внимание на параметр graphiql=True. Это включит интерфейс GraphiQL, который позволит нам тестировать запросы прямо в браузере.

Первый запуск GraphQL

Настройка завершена, самое время проверить работоспособность! Запустим сервер разработчика:

python manage.py runserver

Перейдите в ваш браузер по адресу: http://127.0.0.1:8000/graphql/. Если всё настроено правильно, вы увидите интерфейс GraphiQL. Он выглядит как уютное местечко для программиста: поле для ввода запросов, раздел для результатов и справочная документация.

Конечно, сейчас ничего не работает (да-да, это нормально!), ведь мы пока не определили никакие запросы или данные. Это будет следующим шагом.

Интеграция GraphQL в проект

Настроить GraphQL мы настроили, но он всё ещё "пуст". Давайте добавим первую схему, чтобы начать работать с данными.

Шаг 1: создание файла schema.py

В корне вашего проекта (рядом с urls.py) создайте файл schema.py:

touch schema.py

Откройте его и добавьте следующий код:

import graphene

class Query(graphene.ObjectType):
    hello = graphene.String(default_value="Привет, GraphQL!")

schema = graphene.Schema(query=Query)

Объясним, что происходит:

  • Мы создали тип Query, который содержит одно поле hello.
  • hello возвращает строку по умолчанию, которую мы указали как "Привет, GraphQL!".
  • Мы определили общую схему GraphQL и сказали, что Query будет её основным входом.

Шаг 2: подключение схемы в проект

Теперь нужно убедиться, что Django знает о нашей схеме. Вернёмся в settings.py и проверьте, что путь к схеме указан корректно:

GRAPHENE = {
    "SCHEMA": "your_project.schema.schema",
}

Если всё настроено правильно, можем двигаться дальше.

Шаг 3: тестирование запроса

Перейдите снова в GraphiQL (http://127.0.0.1:8000/graphql/) и выполните следующий запрос:

query {
  hello
}

Если всё настроено верно, вы получите ответ:

{
  "data": {
    "hello": "Привет, GraphQL!"
  }
}

Ура! Это первый работающий запрос GraphQL.

Что дальше?

Теперь, когда мы настроили Graphene-Django и создали простой GraphQL API, в следующих лекциях мы перейдём к более сложным задачам. Мы определим пользовательские типы, подключим Django модели и научимся создавать запросы и мутации.

GraphQL — это мощный инструмент, который может значительно упростить работу с данными в сложных приложениях. Уже сейчас вы видите, насколько гибким и удобным он может быть.

Если что-то пошло не так, не бойтесь возвращаться к предыдущим шагам. В следующей лекции мы будем углубляться в построение полноценного API с использованием GraphQL и Django моделей.

1
Задача
Модуль 3: Django, 24 уровень, 1 лекция
Недоступна
Реализация простого GraphQL-сервера
Реализация простого GraphQL-сервера
1
Задача
Модуль 3: Django, 24 уровень, 1 лекция
Недоступна
Настройка маршрутов для GraphQL
Настройка маршрутов для GraphQL
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ