Веб‑приложение состоит из двух частей: клиентской и серверной. Клиентская часть — это, в основном, HTMLએ, CSSએ и Javascriptએ и рассматривается она, как способ представления информации пользователям. Серверная часть, как правило, является наиболее сложной и описывает всю бизнес-логику приложения. Веб‑разработку серверной части можно выполнить на многих языках, таких как Javaએ, .Netએ, PHPએ, Ruby on Railsએ, Javascriptએ и т. д. Сегодня Python с его веб‑фреймворками также служит основой серверной части приложений.
Разработка серверной части без фреймворка утомительна, надо написать код для каждой повторяющейся рутинной штуки. Поэтому фреймворки и закрепились в качестве основы веб‑разработки. Сегодня почти все программы этого сегмента включают в себя веб‑фреймворк. Веб‑фреймворкએ — это заранее написанный код для выполнения рутинных задач и предоставления абстракций для собственного приложения. Например, аутентификация пользователей — встроенная функция веб‑фреймворка и почти везде предоставляется абстрактный уровень использования баз данных. Итак, веб‑фреймворкએ помогает разрабатывать приложение быстрее и эффективнее с хорошо написанными модулями и функциональными возможностями. Python — это проект с открытым исходным кодом и многие его веб‑фреймворки также открыты и бесплатны, например, Flaskએ, Djangoએ, web2pyએ, bottleએ и другие.
Здесь приведён список лучших (IMHO) веб‑фреймворков Python, из которого необходимо сделать выбор "правильного" фреймворка для решения своей практической задачи. Веб‑фреймворки можно сгруппировать в две категории: фреймворк полного стека (full stack) и микро‑фреймворк (небольшой и с ограниченными возможностями).
Фреймворки Python для разработки Web-приложений
Готовимся к выбору своего фреймворка
Свой выбор мы будем делать ориентируясь на характеристики, которые можно получить в открытом доступе на таких ресурсах, как GitHub, Stack Overflow и им подобных, а так-же на Российском портале вакансий удалённой работы remote-job.ru. GitHub и Stack Overflow является площадками для разработчиков. На GitHub, размещенным здесь проектам, можно ставить звезды, а на Stack Overflow можно задавать вопросы по поводу того или иного программного обеспечения. С другой стороны на remote-job.ru можно получить список вакансий, связанных с технологиями и ИТ‑компетенциями. Мы будем использовать всего 6 метрик проектов, хотя все они не очень надежны, но могут помочь понять популярность того или иного веб‑фреймворка.
- Группа фреймворков: Full stack или Micro-framework.
- Звёзды Github: общее количество звезд проекта, выставленных пользователям.
- Релизы Github: количество релизов каждого проекта, что отражает активность работы над проектом и его зрелость.
- Fork-и Github: количество, сделанных копий каждого проекта, что показывает популярность использования проекта в собственных работах.
- Вопросы Stack-overflow: количество вопросов, заданных по определенной теме.
- Вакансии: количество вакансий, связанных с технологиями или ИТ‑компетенциями.