@pulivilizator

Как работает подключение frontend к backend Django?

Доброго времени суток. Не так давно начал изучать веб разработку, и возник вопрос по поводу Django и подключения фронтенда и бэкенда.

Как я понимаю, при разработке api все просто, есть конечные точки, они отдают какие то данные, фронт делает к ним запрос и получает эти данные, так работают fastapi и drf например. А в чем тогда смысл обычного Django? В том плане, как происходит взаимодействие с фронтендом? В Django есть шаблонизатор, и получается весь процесс работы с обычным Django сводится к тому, чтобы создать модели, формы, представления, залезть в html код, и вкрутить туда нужные данные шаблонизатором?
И зачем вообще нужен шаблонизатор, кроме ситуаций, когда весь фронтенд написан только на html и css, если фронтенд через js может сам сделать запрос к api и вывести полученные данные так как ему нужно?

Или возможно на практике обычный Django вообще не используют, а используют только с DRF?
  • Вопрос задан
  • 821 просмотр
Решения вопроса 1
@alekssamos
Программист любитель
Можно сделать отдельно бек и отдельно фронт, вариант как раз с drf, API и так далее.
То есть клиент тоже будет что-то делать, а не просто принимать и показывать.

И, собственно, и бек, и фронт вместе. Сразу готовый HTML код уже вместе со всеми данными.
Условно:
<!-- 1. DRF, fastAPI и так далее -->
<div id="dynamicdata"></div>
<script>
dynamicdata.innerHTML = "эти данные появились через скрипт";
</script>

<!-- 2. Django напрямую -->
<div id="staticdata">Эти данные уже вставил сервер, клиенту ничего делать не надо, скрипт не нужен</div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Sanes
@Sanes
У jinja2 шаблонизатора например есть логика, которая работает на сервере и не напрягает клиент.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Подавляющее большинство web-сайтов в интернете не имеют отдельного фронтенда. Фактически именно применение шаблонизатора - это базовый случай.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы