Весь HTMX с нуля! Jinja шаблоны + Flask backend на Python
HTMX с нуля. Шаблоны на Jinja, потому что шаблонизатора лучше просто не существует. Бекенд на Flask, потому что зачем платить больше. Нам нужны просто шаблоны.
Все мои ссылки:
Поддержать выход роликов (зарплата монтажеру)
- на Boosty
С вопросами по программированию приходите в чат при Телеграм канале:
-
Весь код со всеми ветками доступен тут:
Метки:
00:00:00 0. HTMX. Зачем?
00:05:20 1. Инициализация Flask приложения
00:15:59 2. Установка HTMX
00:18:52 3. Простейшие примеры HTMX
00:29:07 Первое применение HTMX: ping
00:34:15 Обработка наведения мыши: hover event
00:41:06 Замена внешнего HTML: hx-swap outerHTM
00:43:36 Промежуточный итог быстрого знакомства с HTMX
00:45:00 Обработка сочетания клавиш
00:47:14 Подытог
00:48:40 4. Кликер на HTMX
00:52:52 Как без HTMX сделать подобное
00:54:54 Храним данные в памяти
00:56:44 Отображаем и обрабатываем форму
00:58:58 Переделываем на HTMX. Какие преимущества и какие сложности?
01:01:10 Заменять целевой тег
01:04:51 Это точно HTMX запрос? Совместимость и определение
01:08:10 Подытог
01:09:12 5. Встраивание страниц при помощи HTMX
01:11:42 Подгрузка сразу после загрузки страницы
01:12:15 Почему не подходит встраивание на уровне шаблонов
01:13:47 Встраивание
01:17:13 Подытог
01:18:09 6. HTMX boosts
01:22:30 Почему надо учитывать Hx-Boosted
01:24:26 Подытог
01:24:58 7. Получение списка товаров
01:26:00 Базовые шаблоны и представления. Blueprint для products
01:30:56 Простейшее хранилище данных
01:35:09 Отображение списка товаров
01:35:40 Добавление товаров: обычная форма
01:39:46 Сложности с обычной формой
01:42:32 Подытог
01:42:55 8. Добавление товара
01:44:08 Обновление формы под HTMX и подгрузка списка
01:47:47 Очистка формы после успеха: hx-on::
01:51:38 Подытог
01:52:55 Сервер диктует поведение клиенту
01:53:49 HTMX swap out of band
01:55:14 Добавление before end без указания oob
01:56:38 Подытог
01:57:16 Поведение указано в ответе сервера - oob update
02:00:30 Не удалять текущий элемент
02:01:30 Подытог
02:02:35 Валидация формы и отображение ошибок
02:07:09 Обработка статус кода
02:09:04 Спасибо (нет) хрому за кэширование
02:09:54 Меняем порт, чтобы хром не догадался
02:10:25 Наш первый джаваскрипт (просто копипастим)
02:11:02 Отображение ошибки
02:13:05 Подытог
02:14:03 Новый подход к работе с формой
02:16:40 Подытог
02:17:50 9. Flask-WTF (What The Forms)
02:20:20 Проверка на уникальность имени
02:23:10 Валидация данных через форму
02:23:57 Отображение новой формы
02:26:15 Макросы в Jinja
02:29:35 Отображение формы и ошибок
02:31:35 CSRF и секретный ключ
02:32:10 Обязательные поля, валидация и ошибки формы
02:33:34 Очистка формы после успешной публикации
02:34:55 Подытог по Flask-WTF
02:37:26 10. HTMX Headers
02:38:28 Отключение проверки CSRF токена
02:39:25 Отправка заголовков авторизации в HTMX запросе
02:43:10 Подытог
02:44:20 11. Удаление и анимации
02:45:36 Кнопка удаления
02:48:24 Удаление товара
02:51:02 Успешный статус 204 для замены (и удаления)
02:52:45 Удаление ближайшего тега на странице
02:53:34 Подытог
02:54:48 Удаление ближайшего элемента по классу
02:55:24 Подытог
02:56:34 Анимация. Статика для использования с hx-indicator
03:03:40 Отображение анимации
03:05:36 Smart move программиста чтобы не уволили
03:08:08 htmx-swapping: анимация пропадания / появления
03:11:54 Подытог по анимации удаления (загрузка и растворение)
03:13:25 12. HTMX Update - обновление товара
03:13:55 Представление деталей товара
03:19:00 Подытог
03:19:20 Шаблон страницы обновления товара
03:21:30 Обработка обновления товара
03:28:35 Отправка PUT запроса
03:29:35 Обработка обновления без изменения имени
03:31:29 Подытог
03:32:32 13. Удаление товара со страницы деталей и возвращение к списку товаров
03:37:10 Сервер решает, перенаправлять ли клиент
03:39:20 Вспоминаем статус коды перенаправления
03:40:50 Замена адреса через hx-push-url и замена всего тела страницы
03:44:02 Подытог
03:45:00 Подтверждение удаления (диалоговое окно)
03:46:46 14. Пагинация reveal: load paginate
03:48:00 Заполняем хранилище случайными данными
03:50:40 Подытог
03:51:06 Пагинация page per_page
03:54:10 Подгрузка новых элементов при прокрутке
04:00:50 Анимация при ожидании загрузки новой порции
04:02:35 Подытог
04:04:18 15. Пагинация кнопками
04:04:54 Шаблоны для постраничной пагинации с кнопками
04:11:26 Отображение страницы и кнопок
04:12:58 Анимация загрузки страницы
04:14:48 Неправильная загрузка при “перенаправлении“
04:16:23 Подытог
04:18:00 Итоги
04:19:46 СПАСИБО
20 views
579
165
5 months ago 04:19:53 4
Весь HTMX с нуля! Jinja шаблоны + Flask backend на Python
6 months ago 00:09:02 1
Сетчатый двухсторонний узор к модели известного бренда
7 months ago 00:26:21 1
Go, & HTMX - Building a Small Todo App ( Golang )
10 months ago 00:15:22 2
Jeremy McPeak’s Larabits - HTMX May Be All You Need
10 months ago 01:03:12 1
#204 Vim Is The Only REAL CODE EDITOR | ThePrimeagen
10 months ago 04:17:57 8
Trying PHP / Laravel | Try Day Friday
11 months ago 00:56:47 1
HTMX Crash Course | Dynamic Pages With No JavaScript
1 year ago 00:05:20 5
Frontend slander
1 year ago 00:26:46 1
DjangoCon 2022 | From React to htmx on a real-world SaaS product: we did it, and it’s awesome!
1 year ago 00:29:09 9
HTMX in Laravel - AJAX calls with HTML
2 years ago 00:00:45 1
CARERAY 17*17 digital wireless x-ray flat panel detector Vet Human Use MSLCV17 wireless DR detector
2 years ago 00:17:36 1
FastAPI Python framework - Returning HTML templates (with HTMX integration)
2 years ago 00:23:07 6
Django, HTMX and - Modals and Forms
3 years ago 00:20:19 2
Django, HTMX and - Building an Accordion component
3 years ago 00:28:03 3
django-crispy-forms and HTMX integration #2 - User Registration and Login/Logout
3 years ago 00:09:19 2
Django and HTMX #14 - Trigger Filters for Conditionally Triggering Requests
3 years ago 00:19:59 4
Django and HTMX #6 (part 2) - Building a Sortable Drag and Drop Interface