Какой правильный способ динамического изменения html с помощью django

Предположим, у нас есть страница входа в систему, где на первом этапе нас просят ввести свой email. Мы отправляем эту информацию на сервер, который проверяет, существует ли аккаунт с этим email, и если да, то наша цель - изменить состояние страницы на страницу, где пользователю предлагается ввести пароль для этого аккаунта. Если же, с другой стороны, учетной записи на этот email нет, состояние страницы меняется на то, где пользователь регистрируется. И допустим, что для эстетики все это происходит с использованием одного и того же url.

Мой вопрос заключается в том, как правильно информировать страницу клиента о том, на какой этап переходить?

Отправка всего html-кода - это вариант, но это кажется слишком большой нагрузкой на сервер. Есть ли более чистый способ, позволяющий отправить меньше информации и получить тот же результат?

Я новичок в django и web dev, поэтому, пожалуйста, объясните все подробно.

Для движка браузера отправка формы с электронной почтой - это новый запрос страницы и новый рендеринг HTML после этого. Источником нового HTML кода является ваш сервер с Django, поэтому вы должны сгенерировать новый HTML с соответствующим шаблоном и отправить его в качестве ответа.

Такие события, спровоцированные пользователем, изменяют состояние вашего приложения для данной пользовательской сессии, а не страницы.

Для скорости можно использовать кэши для стилей, для меню, для HTML сниппетов (заголовков и колонтитулов). Также можно сделать одностраничное приложение, но для этого необходимо использовать JavaScript фреймворк. Тогда ваш JavaScript код, выполняющийся в браузере клиента, может запрашивать лаконичный JSON с необходимой информацией вместо полного HTML. Тогда ваш JavaScript фреймворк отвечает за корректную вставку новых динамических HTML элементов в текущую объектную модель документа (DOM).

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