Что это простыми словами
Flask — это инструмент для создания серверной части сайтов и веб-приложений на языке Python. Серверная часть — это то, что работает «за кулисами»: обрабатывает запросы, общается с базой данных, формирует ответы и отдаёт их пользователю.
Аналогия: если сайт — это ресторан, то Flask помогает организовать кухню и официантов. Пришёл заказ от посетителя (запрос из браузера) — Flask принимает его, готовит блюдо (обрабатывает данные) и возвращает результат.
Flask называют «микрофреймворком», потому что он даёт только самое необходимое для старта, а всё остальное разработчик добавляет сам. Это как конструктор: берёшь базу и собираешь именно то, что нужно.
Официальное определение
Теперь, когда суть понятна, вот как Flask описывают в вакансиях и документации. Эту формулировку вы будете встречать у заказчика, в резюме и в речи разработчиков — теперь вы понимаете, что за ней стоит.
«Flask — лёгкий WSGI-микрофреймворк для веб-разработки на Python, основанный на Werkzeug и Jinja2».
Разберём по словам. «WSGI» — это стандарт того, как Python-приложение общается с веб-сервером; рекрутеру понимать детали не нужно, просто знайте, что это техническая основа. «Микрофреймворк» — минимальный набор инструментов, без лишнего. «Werkzeug» — библиотека для обработки запросов и маршрутизации. «Jinja2» — шаблонизатор, который подставляет данные в HTML-страницы. «Лёгкий» — простой в освоении и не перегруженный функциями.
Зачем нужен и какую задачу решает
Flask решает задачу быстрого старта веб-проекта. Если нужно сделать API для мобильного приложения, небольшой внутренний сервис или прототип стартапа — Flask позволяет написать рабочий код за считаные часы.
Главная боль, которую он снимает: не нужно строить всё с нуля. Flask берёт на себя рутину — обработку запросов, маршрутизацию, работу с шаблонами. При этом он не навязывает жёстких правил: разработчик сам решает, какие библиотеки добавить для базы данных, авторизации или валидации.
Flask хорош для небольших и средних проектов, API, микросервисов и прототипов. Для огромных корпоративных систем чаще выбирают более тяжёлые инструменты.
К кому относится: язык, специальность, экосистема
Flask — инструмент backend-разработчика. Работает на языке Python. «Flask-разработчик» — это Python-бэкендер, который специализируется на Flask.
Вокруг Flask выросла экосистема дополнительных библиотек, которые вы будете встречать в резюме рядом с ним:
Flask-RESTful — упрощает создание REST API (интерфейсов для общения приложений между собой).
Flask-Login — управление авторизацией пользователей (вход, выход, сессии).
Flask-Migrate — работа с изменениями структуры базы данных.
SQLAlchemy, Flask-SQLAlchemy — для работы с базами данных. Marshmallow — для проверки и преобразования данных.
С чем взаимозаменяем
Flask — один из нескольких Python-фреймворков для бэкенда. Главные конкуренты:
Django — тяжёлый фреймворк «всё в коробке», для крупных проектов.
FastAPI — современный микрофреймворк для API, быстрее Flask и с автоматической документацией.
Tornado, Sanic, aiohttp — асинхронные фреймворки для высоконагруженных задач.
Эти фреймворки НЕ взаимозаменяемы при найме: Flask-разработчик не равен Django- или FastAPI-разработчику. Переход возможен, но это месяцы на освоение, и опыт переносится частично. Каждый фреймворк — это своя «школа» и свой способ мышления.
А вот библиотеки внутри мира Flask (Flask-RESTful, Flask-Login) взаимозаменяемы с их аналогами — это не повод отбраковывать.
Что не путать
Flask ≠ Python: Python — это язык, а Flask — инструмент, написанный на нём. Знать Flask, не зная Python, нельзя.
Flask ≠ FastAPI: звучат похоже, и оба — микрофреймворки на Python. Но это конкуренты, а не одно и то же. FastAPI — более современный, Flask — более зрелый.
Flask ≠ Django: Django — это «комбайн» со встроенными инструментами для всего. Flask — минималистичный конструктор. Подходы разные, опыт почти не переносится.
Flask — это бэкенд, а не фронтенд. Если в резюме «Flask + React», значит человек писал серверную часть на Flask и интерфейс на React.
Насколько это важно при отборе
Короткий ответ: это жёсткий фильтр.
Фреймворк — это «школа». Flask, Django и FastAPI устроены по-разному, и опыт между ними переносится лишь частично. Предлагать Django-разработчика на вакансию с Flask — почти всегда ошибка: человеку понадобится время, чтобы переучиться и войти в новую логику. Отсеивать кандидатов по фреймворку — нормальная и правильная практика.
Но не переносите эту строгость на уровень ниже. Библиотеки внутри Flask (Flask-Login, Flask-RESTful) взаимозаменяемы, и требовать конкретную — ошибка. Правило простое: по фреймворку отсеивать можно, по библиотекам внутри него — нет.
Отдельный случай: если кандидат знает Django, но не Flask, решение зависит от проекта. Для быстрого старта лучше брать человека с опытом именно Flask. Для долгосрочной работы Django-разработчик освоит Flask за недели, но будет менее продуктивен на старте.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.