Как понять Django, придя из R Shiny?
Прежде всего, мои извинения, если это не лучшее место, чтобы спросить об этом.
Мой вопрос заключается не в том, чтобы узнать мнение о том, какой из них лучше, а в том, чтобы понять, что происходит, поскольку я совершенно запутался
.
Я знаком с R Shiny и его концепцией реактивности, просто пишу целую HTML страницу с объектами, связанными с функциями, все за один раз. Сейчас я пытаюсь понять Django, но это оказалось довольно сложным для меня на протяжении всех уроков.
Предыстория: Развернул основные приложения внутри компании с помощью Shiny - приложения используют аутентификацию, сбор данных, push/pull в AWS S3, одно также связано с базой данных SQL. Использую HTML, SCSS и Javascript с Shiny. Знаю python для машинного обучения, сейчас хочу перевести одно из своих приложений на Django.
В Shiny я могу буквально использовать функции, которые будут генерировать HTML и CSS после запуска приложения.
Я могу описать: "Сделайте div здесь, с кнопкой внутри, когда пользователь нажмет на нее, измените цвет фона div, подождите 5 секунд и вернитесь к исходному цвету".
Shiny будет генерировать HTML и использовать reactivity для проверки того, нажата кнопка или нет, на стороне сервера будет вестись подсчет секунд, и CSS будет меняться соответственно (смотрите, это не совсем то, что происходит дословно, но суть вы уловили).
Но в Django я пока ничего не понимаю.
Я пишу HTML файл с div с id = mydiv. Внутри него я помещаю числовой ввод с id 'my input', что тогда?
Что, если я хочу, чтобы число внутри интерактивно генерировало поля div?
Пользователь вводит '10' и тут же под ним динамически появляются 10 синих квадратиков? Затем я напишу код, чтобы при нажатии минимум на 4 ячейки появлялась надпись "Поздравляем!"?
Я даже не знаю, как начать, где вы связываете ID с функцией в сервере - это вообще так работает?
Если кто-то может направить меня, чтобы понять, как реактивность работает в Django (или альтернатива ей), заранее большое спасибо.
Взаимодействие Django с HTML заключается только в предоставлении языка шаблонов, который может помочь внедрить данные из объектов python в статический html, который отображается. Он не делает никаких других действий по созданию крючков, которые могла бы делать библиотека для фронтенда.
В противном случае он работает как место для вызовов api, которые ваш front end может использовать для манипуляций с собой.
tl;dr - django на самом деле ничего не делает с front end, он просто рендерит его и предоставляет ему данные