Pull to refresh
0
Skillbox
Образовательная платформа Skillbox

10 веб-фреймворков Python, с которыми стоит работать в 2018 году

Reading time 6 min
Views 101K
image

От переводчика: сегодня мы предлагаем вам перевод статьи, размещенной на Hackernoon компанией SteelKiwi. Она занимается разработкой программных решений b2b и b2c, а опытом, накопленным в процессе работы, делится с читателями своего блога.

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

Skillbox рекомендует: Практический курс «Python-разработчик с нуля».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».

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

Прежде чем начать…


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

Информация о некоторых фреймворках изложена на страницах «Википедии». Финальное решение, однако, вы должны принимать сами на основе уже озвученных выше принципов анализа собственного сервиса или приложения.

Full-stack фреймворки


Django



Django — свободный open-source full-stack фреймворк. Он позволяет добавить большинство стандартных функций единым пакетом вместо поиска отдельных библиотек.

Среди них — такие востребованные, как аутентификация, URL-маршрутизация, миграция схемы данных и т.п.

Django использует ORM для сопоставления объектов с таблицами баз данных. Один и тот же код работает с разными базами данных, так что переход из одной БД в другую становится простой задачей. Основными базами, с которыми работает Django, являются PostgreSQL, MySQL, SQLite и Oracle. Можно добавить и другие, но для этого понадобятся решения сторонних разработчиков.

Pyramid



Pyramid — open-source фреймворк, который дает максимум возможностей разработчику с минимальными затратами времени и ресурсов.

Наиболее интересная возможность фреймворка — работа как с большими, так и с малыми приложениями. Отдельно стоит выделить такие функции Pyramid, как:


TurboGears



TurboGears — open-source full-stack фреймворк для веб-приложений. Он позволяет разработчику быстро создавать расширяемые веб-приложения, управляемые данными. TurboGears поставляется с удобными шаблонами и мощным и гибким ORM.

Наиболее важные функции фреймворка:

  • поддержка различных баз данных;
  • поддержка SQLObject и SQLAlchemy;
  • валидация для FormEncode;
  • Pylons как веб-сервер;
  • инструменты командной строки.

Web2py



А это — масштабируемый open-source full-stack фреймворк для Python. Но прежде чем начать с ним работать, стоит запомнить, что с Python 3 он несовместим.

Зато Web2py поставляется с собственным IDEwhich: в нем есть редактор кода, дебаггер и деплой в один клик. Среди прочих функций и инструментов стоит выделить следующие:

  • отсутствие необходимости в установке и настройке;
  • работа в среде Windows, Mac, Google App Engine, Amazon EC2 и на любом хостинге, который поддерживает Python 2.5–2.7 или Java+Python;
  • работа с различными протоколами;
  • высокий уровень безопасности данных;
  • трекер ошибок;
  • обратная совместимость, которая позволяет без труда работать с приложениями и сервисами на основе прежних версий фреймворка.

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


Flask



Это микрофреймворк, который предоставляется по лицензии BSD. Его разработчики вдохновлялись фреймворком Sinatra Ruby. Он зависит от инструментария Werkzeug WSGI и шаблона Jinja2.

У Flask модульный дизайн, который позволяет адаптировать его для выполнения многих задач. «Из коробки» разработчик получает следующие функции:

  • встроенный сервер и дебаггер;
  • шаблоны Jinja2;
  • поддержка безопасных кукис;
  • WSGI 1.0;
  • Unicode;
  • возможность подключения к любой ORM.

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

Bottle



Еще один микрофреймворк, который изначально предназначался для создания API. Bottle отличает наличие единственного source-файла. Работа с ним не требует «танцев с бубном».

Его функции по умолчанию включают в себя маршрутизацию, шаблоны, утилиты и базовую абстракцию по стандарту WSGI:

  • маршрутизация поддерживает запросы на отображение функциональных вызовов, позволяя вам получать чистые и динамические URL-адреса.
  • шаблоны — много нужных инструментов, работающих «из коробки» вместе с полной поддержкой mako, jinja2 и cheetah.
  • утилиты — удобный доступ к данным, загрузка файлов, куки, заголовки и другие метаданные, связанные с HTTP.
  • встроенный сервер разработки HTTP, который поддерживает функции fapws3, bjoern, GAE, CherryPy и любой другой HTTP-сервер с WSGI.

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

CherryPy



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

По факту это веб-приложение, работающее под управлением CherryPy, является автономным приложением Python, использующее собственный многопоточный веб-сервер. Приложения CherryPy запускаются в любой операционной системе, поддерживающей Python (Windows, MacOS, Linux и т.д.). Они могут быть развернуты в любом окружении, где вы можете запускать обычное приложение Python. Вам не требуется Apache для приложений CherryPy, вы можете запустить приложение CherryPy в Apache, так же как в Lighttpd или IIS.

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

Его отличительные способности:

  • простой запуск нескольких HTTP-серверов одновременно;
  • мощная конфигурационная система;
  • гибкая система плагинов;
  • возможности «из коробки»: кэширование, декодирование, сессии, аутентификация, статический контент и т.п.;
  • возможность работы под Python 2.7+, Python 3.1+, PyPy, Jython и Android.

Асинхронные фреймворки


Sanic

Sanic — Python-фреймворк, который построен на uvloop и предназначен для быстрой обработки HTTP-запросов.

Он работает на Python 3.5+. Sanic поддерживает асинхронные обработчики запросов, что делает его совместимым с функциями async / wait Python 3.5. Это значительно повышает скорость работы.

В бенчмарке при обработке 100 соединений Sanic показал способность обрабатывать 33 342 запроса в секунду.

Tornado



Tornado — это веб-фреймворк Python и асинхронная сетевая библиотека одновременно. Он использует неблокирующий сетевой ввод-вывод и решает проблему C10k (это означает, что при правильной настройке он может обрабатывать 10 000+ одновременных подключений).

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

Основные достоинства:

  • встроенная поддержка аутентификации пользователей;
  • услуги в режиме реального времени;
  • высококачественная производительность;
  • язык веб-шаблонов на основе Python;
  • неблокирующий HTTP-клиент;
  • внедрение сторонних схем аутентификации и авторизации (Google OpenID / OAuth, Facebook Login, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
  • поддержка переводов и локализаций.

Бонус


Dash



Dash — фреймворк Python с открытым исходным кодом, используемый для создания аналитических веб-приложений. Он особенно хорош для специалистов по большим данным, которые не очень хорошо знакомы с веб-разработкой.

Приложения Dash — веб-серверы, которые запускают Flask и обмениваются данными с пакетами JSON по HTTP. Их интерфейс обеспечивает компоненты возможностями React.js.

Приложения, разработанные с помощью Dash, отображаются в веб-браузере и могут быть развернуты на серверах. Приложения Dash являются по своей сути кроссплатформенными.

В качестве вывода можно сказать, что фреймворков разработчикам предлагается действительно много. Каждый из них дает собственные уникальные возможности. Но выбор фреймворка — важное решение для будущего собственного проекта, и спешить с этим не следует.

Skillbox рекомендует:

Tags:
Hubs:
+7
Comments 31
Comments Comments 31

Articles

Information

Website
skillbox.ru
Registered
Founded
Employees
501–1,000 employees
Location
Россия