Python — один из самых популярных и простых для изучения языков программирования и применяется почти везде, в том числе в веб-разработке. Для него есть много фреймворков, часть которых не просто облегчает разработку, но и предоставляет инструменты, позволяющие буквально за пару дней поднять готовый сайт.
Главный плюс фулстек-фреймворков в том, что всё, нужное для полноценного приложения, в них уже есть. Есть такие фраемворки:
Django
Pyramid
TurboGears
Flask
Tornado
Django
Высокоуровневый фреймворк, предназначенный для быстрой и эффективной разработки. Его архитектура выстроена так, чтобы максимально экономить ваше время и силы, а в будущем — время и деньги заказчиков. Основные принципы философии Django — DRY и rapid development .
Какие есть плюсы?
Масса библиотек. Базовую функциональность не нужно писать самому — многое уже написано, остаётся только импортировать соответствующие библиотеки. На качество библиотек Django обычно можно положиться.
Сообщество и документация. У Django подробная документация и дружелюбное сообщество, поэтому всегда можно разобраться, что как работает, или спросить у специалистов.
Масштабируемость. Если вы понятия не имеете, насколько сильно ваш проект вырастет и вырастет ли вообще (как это обычно и бывает со стартапами), Django позволяет начать с малого и масштабироваться по мере необходимости.
Минусы
Django из коробки не поддерживает WebSockets, поэтому он плохо подходит для работы в реальном времени.
Готовые библиотеки — это в целом хорошо, но часто они снижают гибкость.
Где используется?
- Instagram — социальная сеть для обмена фотографиями и видео.
- Spotify — музыкальная платформа, рекомендующая пользователям музыку в зависимости от их предпочтений.
Pyramid
Этот фреймворк подходит для проектов любого размера. В нём есть полезные фичи для создания сложных приложений или масштабирования изначально небольших сайтов под возросшую нагрузку.
Плюсы
Гибкость и удобство кастомизации. Любой компонент фреймворка, будь то база данных или движок шаблонов, может быть заменён. Можно даже использовать несколько разных компонентов одновременно (например, подключить две разные базы данных).
Удобные Ajax-запросы. Благодаря системе декораторов и представлений можно отправлять XHR-запросы без дополнительных усилий со стороны разработчика.
Поддержка SQLAlchemy. SQLAlchemy обеспечивает удобную работу с базами данных даже для сложных запросов.
Минусы
Требует времени на развёртывание и подготовку к разработке.Чтобы заниматься кастомизацией, надо хорошо разбираться в Pyramid.Для простых приложений SQLAlchemy может быть чересчур громоздкой.
Где используется?
- Charte.ca — онлайновый редактор графиков для неспециалистов.
- Easy Blog Networks — хостинг-провайдер.
- Substance-D — среда разработки веб-приложений.
TurboGears
TurboGears — опенсорсный фреймворк для быстрой разработки приложений, работающих с данными. Он поддерживает SQLAlchemy, Genshi, WebOb, and Repoze, так что TurboGears прекрасно подходит для любой системы, требующей хорошей поддержки баз данных.
Плюсы
Гибкость. TurboGears можно использовать и как микрофреймворк для быстрого прототипирования, и как полноценный фулстек фреймворк для поддержки масштабных проектов.
Расширяемость. Можно создавать собственные плагины или дополнять функциональность имеющихся.
Минусы
У него так много возможностей для расширения, что в них легко запутаться.
Где используется?
- Apache Allura — онлайн-платформа для управления репозиториями кода, созданная SourceForge.
- Kamisons — сайт по продаже зонтов.
Flask
Flask — это WSGI-фреймворк, который подходит и для простых сайтов, и для сложных платформ.
Плюсы
Понятный минималистичный фреймворк. Довольно легко разобраться, что именно происходит и какой процесс за что отвечает. Логика работы не меняется от версии к версии.
Быстрое прототипирование. Все инструменты, нужные для создания прототипа, работают прямо из коробки.
Минусы
Фреймворк относительно низкоуровневый, поэтому в нём надо сперва разобраться, да и требования к уровню программиста выше, чем у остальных. Если хочется не выяснять, что и как работает под капотом, а сразу делать сайты — лучше выбрать что-нибудь другое.
Где используется?
- Rainist - онлайн-платформа для управления личными финансами.
- Netflix - одна из крупнейших стриминговых платформ в мире.
- Lyft - платформа для заказа такси и аренды транспорта.
Tornado
Асинхронный фреймворк, благодаря неблокирующему обмену данными способный одновременно поддерживать множество пользовательских соединений.
Где используется?
- Uploadcare — облачный сервис для работы с файлами.