847просмотров
28 января 2024 г.
Score: 932
Пару выходных назад я почитал про концепцию HATEAOS, aka Hypermedia as the Engine of Application State, и фреймворк под названием HTMX. Если вкратце, то идея HTMX в том чтобы писать как можно меньше client-side кода на JS, а интерактивность обеспечивать путем отправки новых блоков HTML кода обратно с сервера на клиент (в браузер). Мне показалось что такая концепция хорошо подходит для того чтобы реализовать server-driven UI kit уже на Python. Идея в целом простая как пробка:
- Python-сервер возвращает на клиента готовую HTML страничку
- действия пользователя на клиенте триггерят события, а htmx эти события заворачивает в вебсокет и отправляет обратно на сервер
- на стороне сервера определяется что и как нужно сделать с этим событием, а в ответ отправляется небольшой кусочек HTML кода, который аккуратно морфится на странице. После пары выходных за ноутбуком получился небольшой фреймворк под названием schorle. Попробовать его в действии, а так же почитать про его логику можно вот здесь: https://polarpersonal.medium.com/schorle-testing-the-waters-with-a-python-server-driven-ui-kit-053f85ee6574