Веб-фреймворки на Python: Flask, Django, FastAPI и другие
Веб-фреймворк — набор готовых средств для создания веб-приложений. У Flask, Django, FastAPI и Starlette разный набор встроенных возможностей.
Веб-фреймворк — набор библиотек, правил и готовых компонентов, которые упрощают создание веб-приложений: маршрутизацию, обработку HTTP-запросов и ответов, работу с шаблонами, проверку данных, доступ к базе данных и другие типичные задачи. Flask — не единственный веб-фреймворк для Python; у остальных другой набор встроенных возможностей.
Каждый фреймворк берёт на себя часть типовой работы: маршрутизацию (кто отвечает за какой адрес — раздел 22.11), обработку запроса и ответа, иногда — шаблоны, проверку входных данных, работу с базой данных, авторизацию, инструменты для тестирования. Разница между фреймворками — в том, сколько именно он берёт на себя и насколько легко заменить любую из этих частей на свою.
Другие веб-фреймворки для Python
Кроме Flask, Django, FastAPI и Starlette, в веб-разработке на Python используются и другие проекты. Ни один из них не рассматривается в этой главе подробно — они упомянуты, чтобы вы узнавали названия, встретив их в реальных проектах.
| Фреймворк | Основной фокус | Интерфейс/модель | Типичное применение |
|---|---|---|---|
| Litestar | Производительность и строгая типизация | ASGI | API-сервисы, где важны типы и валидация |
| Quart | API, совместимый с Flask | ASGI | Перенос Flask-приложений на асинхронную модель |
| Pyramid | Гибкая архитектура без навязанной структуры | WSGI | Проекты, растущие от небольшого скрипта до крупного приложения |
| Tornado | Асинхронный ввод-вывод, долгоживущие соединения | Собственный асинхронный движок + ASGI/WSGI-совместимость | Веб-сокеты, длительные соединения |
| Bottle | Минимализм, один файл | WSGI | Совсем маленькие сервисы и прототипы |
Официальная документация: Flask, Django, FastAPI, Starlette.