Интеграция Front End и Backend

Я планирую создать веб-приложение React/Django. Я планирую создать API на бэкенде для связи с моим приложением React. Как я понимаю, вы можете интегрировать React с django, включив ваше приложение react в каталог проекта django и указав на index.html в react.

Я все еще не уверен, какие преимущества это дает. Будет ли лучше просто разделить django и react приложение. Когда мне нужно будет хранить или получать данные, я смогу просто делать запросы к API django?

Лучше разделить два проекта по многим причинам, Главная причина - когда вам нужно построить мобильное или настольное приложение на том же бэкенде или базе данных, здесь на помощь приходит преимущество API, Есть много причин, таких как: разделение серверов для обработки запросов как фронтенда (статические файлы), так и бэкенда (API и БД).

Лучшим подходом является разделение и использование DRF (Django Rest Framework), эта библиотека предложит serializers, которая в основном будет интерпретировать ваш запрос и затем обрабатывать его в классе/функции представления в Django, весь процесс происходит следующим образом (между фронтендом и бэкендом):

  1. Вы создаете таблицы в базе данных (модели).

  2. Вы создаете представления, и некоторые представления будут получать данные из сериализатора, чтобы обработать запрос, отправленный со стороны клиента (react).

  3. Вы отображаете представления на урлы.

Теперь часть реакции:

  1. Вы делаете несколько вызовов api.

  2. Запрос отправляется на backend (в данном случае это django).

  3. Запрос отправляется в формате данных "JSON", но python не понимает такой формат, поэтому существуют сериализаторы! Сериализатор интерпретирует данные и преобразует их в то, что понимает python (словарь), а затем запрос будет обработан представлением.

  4. Ответ будет отправлен в react.

Надеюсь, это прояснит ситуацию для вас, для получения дополнительной информации о DRF:

https://www.django-rest-framework.org/

также сериализаторы могут изменить поле поиска для некоторого ресурса в вашем бэкенде, что довольно полезно, когда вы хотите искать имя вместо id в url

дополнительная информация о сериализаторах:

https://www.django-rest-framework.org/community/third-party-packages/#serializers

Вернуться на верх