Статьи

Django и React Разработка одностраничных приложений — часть 1

Вступление

В Pixly мы используем Django в качестве нашего бэкенда из-за превосходных библиотек по науке о данных и большого сообщества в экосистеме Python. Однако, когда мы решили сделать приложение-интерфейс в виде одностраничного приложения с React, мы столкнулись со многими трудностями. Мы надеемся, что наш учебник немного поможет новичкам в решении их будущих проблем.

Требования

Люди, которые следуют этому руководству, должны иметь как минимум начальный уровень знаний о Python и базовый уровень знаний Django Framework . Кроме того, базовый уровень Javascript и React является обязательным.

Этот учебник планируется сделать из трех частей:

  1. Бэкэнд Джанго.
  2. Django GraphQL API .
  3. Реагируйте на внешний интерфейс и связывайте клиентское приложение с Webpack.

Описание проекта

Мы сделаем глупо простое одностраничное приложение, написанное на React, которое будет взаимодействовать с нашим бэкэндом Django через API GraphQL. Приложение React будет написано с нуля с помощью веб-пакета. Шаблон create-реагировать на приложение не будет использоваться.

Существует несколько вариантов интеграции Django и React в производство:

  1. Вы можете запустить два сервера, один для Django Backend, а другой для Node Backend Server. Это не идеально из-за затрат, связанных с запуском двух разных серверов.
  2. Вы можете использовать безсерверную архитектуру, поэтому вы платите только за те функции, которые запускаются на стороне клиента, и запрашиваете у нее базу данных.
  3. Вы можете запустить внутренний сервер Django, который будет отвечать на запросы нашего веб-приложения. Это будет наш подход в этой серии.


Вам также может понравиться:
Учебник по Python Django для начинающих .

Наше веб-приложение будет работать в браузерах наших пользователей. Все запросы и логика внешнего интерфейса будут выполняться браузером с помощью приложения React JavaScript.

Наш проект не будет изоморфным приложением. Следовательно, нам нужен API, который будет использоваться для взаимодействия между Python-бэкендом и JavaScript-интерфейсом. У нас есть два варианта для этого; ОТДЫХ и GraphQL. Мы будем использовать GraphQL. Наш интерфейс и бэкэнд будут использовать Apollo GraphQL и инфраструктуру Graphene соответственно.

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

Шаг 0: Настройка среды

Примечание . Если вы решите использовать существующую среду Python, вы можете пропустить эту часть и перейти к шагу 1.

Это руководство было написано на компьютере с операционной системой Ubuntu 18.04. Интерпретатор Python по умолчанию — Python 3.6.x. Из-за необходимости чистой среды будет установлен Python 3.8, и на нем будет построена виртуальная среда.


Оболочка