
Принять и обработать форму во Flask: пошаговая инструкция
Разбираем, как создать HTML-форму, принять данные на сервере и вернуть результат пользователю — от простого текстового поля до загрузки файла. Всё на Flask 3.x с проверкой каждого шага.

Разбираем, как создать HTML-форму, принять данные на сервере и вернуть результат пользователю — от простого текстового поля до загрузки файла. Всё на Flask 3.x с проверкой каждого шага.

ALTER TABLE на таблице с десятками миллионов строк блокирует запросы на минуты, а пользователи видят 502. Разбираем, какие миграции Django безопасны под нагрузкой, какие — нет, и как переписать опасные операции так, чтобы деплой не требовал окна обслуживания.

Flask уже поставляется с Jinja2 «из коробки», но чтобы шаблоны заработали, нужно правильно разложить файлы и разобраться с синтаксисом. Пошаговая настройка от пустого проекта до рабочей страницы — за 20 минут.

Собираем рабочее REST API с нуля на FastAPI: от установки до первого POST-запроса с валидацией. По шагам, с проверками и типичными ошибками — без предварительного опыта с фреймворком.

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

Версионирование API — одно из тех решений, которые дёшево принять в начале и дорого переделывать потом. Разбираем, на что именно смотреть при ревью кода, связанного с версиями API в Django REST Framework: от выбора схемы до миграций сериализаторов.

Django поддерживает async views с версии 3.1, но переход на них не всегда приводит к приросту производительности. Разбираем, где асинхронные представления действительно снимают нагрузку, где создают новые проблемы и какие цифры стоит снять до принятия решения.

CSRF-токены, rate limiting и валидация форм в Django ведут себя предсказуемо на десяти запросах в секунду. При трёхстах — начинаются отказы, потери сессий и ложные срабатывания защиты. Разбираем, где именно механизмы безопасности форм перестают работать штатно и как это диагностировать.

Приложение на Django начало показывать пользователям устаревшие данные после переключения чтения на реплику PostgreSQL. Разбираем, почему встроенный механизм database routers не спасает от replication lag и что с этим делать.

Django долго жил без встроенного пула соединений к базе данных и открывал новое подключение на каждый запрос. В версии 5.1 появился встроенный connection pool на основе пакета, который раньше приходилось ставить отдельно. Разбираем, как он работает на уровне кода, где экономит время, а где создаёт проблемы.

Стандартная админка Django начинает тормозить задолго до того, как тормозит сам проект. Разбираем, почему list_display с ForeignKey порождает сотни запросов, как ModelAdmin строит QuerySet и где именно теряется время на страницах с 50+ объектами.

Монолит на Django обрабатывал 400 запросов в секунду, а потом перестал справляться. Рассказываю, как выделял сервисы, какие решения сработали, а где подход сломался — с цифрами до и после.