Какой Python-фреймворк учить в 2020 году?

Фреймворки облегчают жизнь разработчиков, предлагая им структуру для разработки приложений. Они автоматизируют реализацию общих решений и сокращают время разработки. Позволяют разработчикам сосредоточиться на логике приложения, а не на рутинных задачах.

Предлагаю рассмотреть ряд лучших веб-фреймворков на языке Python, знание которых желательно чтобы стать профессиональным разработчиком. Естественно, знания самого языка Python никто не отменял. Если вы новичок в Пайтоне, то рекомендую для начала подтянуть знания по языку. Только потом переходить к фреймворкам.

Почему Python фреймворки?

Согласно данным популярной платформы для разработчиков Stack Overflow, Python относится к одному из самых быстрорастущих языков программирования. В ближайшем будущем эта тенденция скорее всего сохранится, а может даже и усилится. Именно поэтому, изучение Пайтона и фреймворков на нём в 2020 году будет отличным вариантом развития.

python code screen

Безусловно, самые популярные платформы (фрэймворки) на Python – это Django и Flask. Согласно данным компании JetBrains, около 43% рынка забирает Django и немного меньше Flask – 41%. Но это не значит, что стоит сбрасывать со счетов потенциал других платформ. Каждый из фрэймворков обладает функциями, которые могут идеально подойти для вашего веб-проекта.

Учтите, что фреймворки Python, о которых пойдет речь далее не будут перечисленны в каком-либо порядке. Это не рейтинг, а способ показать возможности.

Важно при выборе фреймворка

При принятии решения, какой фреймворк использовать, обратите внимание на размер и сложность вашего проекта. Если вы хотите разрабатывать большую систему с множеством функций, то правильным выбором может быть full-stack framework. Если же приложение достаточно простое с ограниченным набором функций, то стоит подумать о микрофреймах.

Так же стоит проанализировать будет ли приложение в будущем масштабироваться, какие ресурсы будут необходимы для его работы. Хватит одного сервера или нужно будет несколько серверов, какие объемы трафика и данных будут проходить и какой объем нового функицонала может быть добавлен. С учетом данной информации и целей проекта стоит выбирать фреймворк.

Тем не менее, помните, что фреймворки в своём развитии следуют определенным принципам, что может стать определенным ограниченем в применении тех или иных технологий. Всегда останется возможность обойти ограничения и реализовать свой функционал, но часто это приводит к большим временным затратам, нежели просто написать всё на чистом Python.

Full-stack frameworks

Django

django framework logo

Django относиться к т.н. фреймворкам полного стека (full-stack framework). Он включает в себя много часто используемых функций, вместо того, чтобы дополняться ими в виде отдельных библиотек. Он включает в себя аутентификацию, URL роутинг, движок шаблонов отображения, ORM для взаимодействия с БД и ряд других функций. Эти функции делают Django легко масштабируемым, невероятно быстрым и чрезвычайно универсальным.

Из коробки Джанго легко работает с такими БД как PostgreSQL, MySQL, SQLite и Oracle. Взаимодействие с другими БД могут быть реалиованы сторонними дополнениями. С Django вы можете создать любое веб-приложение от небольших проектов до сложных веб-сайтов.

Популярность Django как фреймворка для разработки веб-приложений продолжает расти. Многие разработчики считают эту среду лучшим выбором для новых технологий, в том числе таких как машинное обучение.

Pyramid

Pyramid framework logo

Pyramid так же можно назвать полностэковым фреймворком. По аналогии с Django, данный ФВ следует принципам максимум возможностей с минимальной сложностью. Он включает в себя широкий набор базовых возможностей для быстрой разработки веб-приложений. При этом у разработчика остаются возможности выбора ORM для взаимодействия с БД и языка шаблонов.

Web2py

web2py framework logo

Web2py – это масштабируемая среда на Python с полным стеком и открытым исходным кодом. Это мощный инструмент для обработки данных. Изначально Web2py разрабатывался в качестве учебного пособия с упором на простоте его использования. Web2py включает в себя веб-IDE с редактором кода, отладчиком и способностью развертывания приложения в один клик. Среда разработки может быть развернута на любой платформе, имеющей поддурку Python версии 2.7+. Одной из основных фишек фреймворка является наличие системы тикетов, упрощающей отслеживание ошибок. Тем не менее, не смотря на наличие интересных функций, разработку на Web2py выбирают немногие. Прежде всего это вызвано низкой активностью комьюнити с нечастыми обновлениями.

Микрофреймворки

Flask

Flask microframework logo

Flask является лекговесным модульным фреймворком. В основу положена идея быстрого старта разработки веб-приложения с возможностью масштабирования до проектов любього размера. При этом в базовый набор включено ряд полезных фукнций: сервер разработки и отладки; система юнит-тестирования; образотка RESTful запросов; шаблонизатор Jinjs2; возможность интегрирования с любой ORM; другие функции. В большинстве случаев, если для проекта по какой-то причине не подходит Django, то выбор падает на Flask.

Тем не менее, не смотря на свою популярность, многие модули, за счет которых можно расширить функции сегодня не поддерживаются, их документация устарела. Это заставляет разработчиков искать альтернативные решения либо реализовывать их самостоятельно.

Bottle

Микрофреймворк Bottle изначально разрабатывался для построения API. Основная идея фреймворка – всё необходимое в одном файле и никаких внешних зависимостей кроме стандартной библиотеки Python. Выбирать данный фреймворк стоит если вы собираетесь написать небольшое приложение на пару сотен строк кода, т.н. микросервис. Для реализации чего-то более масштабного лучше выбрать что-то более функциональное.

Hug

hug logo

Hug – это фреймвор для разработки API на Python 3. Framework Hug упрощает разработку API, предлагая различные интерфейсы. Это основная причина, почему эта платформа является одной из самых быстрых в Python 3. Ключевые особенности Hug: поддержка автоматической документаци; проверка на основе аннотаций; встроенное управление версиями; может использоваться как библиотека в других приложениях на Python.

Среда Hug содержит минимум интеграций и кода, оставаясь функциональным и производительным. Плюс к этому всему, сообщество Hug в настоящее время стремительно растет, а это плюс при необходимости получения поддержки.

FastAPI

FastAPI logo

FastAPI – это современный фреймворк на Python. На сегодняшний день FastAPI является одной из самых быстрых фреймворков для разработки API на Python 3.6+. Каркас и несколько характеристик от от Flask, включая простоту. Весь фреймворк построен на базе ФВ Starlette и включает в себя большинство его функций (шаблоны, WebSockets и поддержка GraphQL).

FastAPI не связан тесно с какой-либо базой данных, но он поддерживает разные варианты, так что выбрать можно будет под потребности. С FastAPI позволяет структурировать свой проект так, как вам нужно, а так же позволяет использовать файлы из проектов на Flask.

Основной недостаток фрэймворка – это небольшое комьюнити в виду относительной новизны платформы.

Альтернативные фреймворки

Tornado

tornado logo

Tornado – это веб-фреймворк на Python, а так же асинхронная библиотека. Используя неблокирующий сетевой ввод/вывод, Tornado может масштабировать до десятков тысяч открытых соединений, что делает его идеальным решением для длинных запросов, WebSockets и других приложений, требующих долговременного соединения с пользователем и большими объемами трафика.

Торнадо поддерживает широкий базовый функционал, среди которых аутентификация и авторизация пользователей, шаблонизатор на основе Python, инструменты локализации и интернационализации. И все это на фоне высокой производительности. Если вы начинаете проект с требованиями к высокой производительности, но хотите при этом получить широкую базовую функциональность без необходимости изобретения велосипеда, то фреймворк Tornado – отличный выбор.

Какой веб-фреймворк на Python выбрать?

Правильным выбором фреймворка будет тот, который позволит построить вам успешный проект. Конкретный выбор будет зависеть от целей и задач проекта, а так же его масштабов. К тому же, перечисленные выше платформы разработки не являются исчерпывающим списком, а лишь наиболее популярные и интересные, на мой взгляд.

2 комментария

  1. Сталкер:

    Я отдаю предпочтение Django. Реальный потенциал имеет Tornado, если не заштопорится в своём развитии. Flask – отличный выбор для старта небольшого проекта либо, если заранее неизвестно что может в будущем понадобится разработать.

  2. Bombadin:

    Web2Py щупал, хороший. В google-группах дружелюбное комьюнити, можно спросить совета. Дальнейшее развитие Web2Py — Py4Web, но он ещё сыроват. Для начинающих самое то, а все эти Bottle и прочее новичкам не зайдут, будут маршруты гонять да шаблоны рендерить.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.