Всем доброго времени суток!
В данной статье я хотел бы очень кратенько, без подробностей рассказать про интересный проект, который будучи достаточно простым, сильно увеличивает возможности Django фреймворка. Мне он показался достаточно интересным.
Сейчас хайп вокруг современных javascript SPA фронтенд фреймворков особенно горяч, и во многом эта популярность вполне заслужена, эти технологии позволяют успешно выполнять практически любую задачу. Скорость SPA приложения может быть сравнима с десктоп приложениями, это достигается за счет перенаправления большей части ответственности с сервера на клиента. К сожалению, этот новый подход порождает все более сложные технологии, а работа разработчика, которая когда то была увлекательна и продуктивна стала значительно сложнее и монотоннее. Возможны ли альтернативы современным SPA фреймворкам? Возможно ли создавать полноценные reactive user interfaces быстро, просто и только на джанго? Далее хочу обратить Ваше внимание на интересный проект который может дать ответы на эти вопросы.
github: django-sockpuppet
website: https://sockpuppet.argpar.se/.
Этот проект дает возможность легко получить fully reactive user interface подобно тому, что делается при помощи SPA frameworks like React, Vue, Angular etc., только вам не придется использовать практически ни бита javascript кода, а ваш фронтенд, если так можно сказать, будет состоять из джанго templates только лишь.
Здесь немного примеров, что бы приблизительно показать простые возможности этого проекта:
И вот этот пример я считаю необходимым тоже показать, хоть он и написан на RubyonRails, но его также легко реализовать с помощью django-sockpuppet:
Если в двух словах, то html рендеринг происходит на сервере и уже готовый html код отправляется клиенту с помощью websockets.
Основные плюсы данного подхода это:
Нет необходимости создавать отдельный фронтенд проект.
Полностью reactive user interface.
Быстрая скорость разработки приложений.
Vanilla django.
При некоторых доработках django-sockpuppet можно использовать совместно с wagtail, и любыми другими django проектами.
Стоит заметить что прямо из коробки django-sockpuppet будет работать только с class-based views, поэтому если вам понадобиться использовать function-based views, то потребуются некоторые манипуляции.
Вот такой вот reactive django, спасибо что дочитали, было бы очень интересно узнать ваше мнение.
P.S. Интересная статья про то как monolithic web app development возвращается и может стать перспективным направлением в разработке. https://davi.sh/blog/2020/12/hotwiring-the-web/