Топ-5 веб-фреймворков Python в 2020 году

Python web frameworks

Согласно ежегодному исследованию Stack Overflow (за 2019 год), Python стал самым быстрорастущим языком программирования. Про эволюцию Питона можете почитать в нашей статье. Также это наиболее универсальный язык, позволяющий написать и простой скрипт для парсинга, и высоконагруженный сайт, обрабатывающий миллионы запросов пользователей. Идеи для своих проектов можно посмотреть по ссылке.  Но писать свой проект с нуля — сложный и трудоемкий процесс. И даже проделав такой тяжкий труд, вы столкнетесь с проблемами в дальнейшей поддержке этого проекта, особенно если ею будут заниматься другие разработчики, не знающие его структуры. Поэтому нам нужны веб-фреймворки Python.

Фреймворки делают жизнь программистов легче, предоставляя готовую структуру для разработки веб-приложения. Помимо этого они автоматизируют выполнение рутинных, часто повторяющихся задач. Это экономит время разработчиков, позволяя им сфокусироваться на логике приложения. Но крайне важно выбрать именно тот фреймворк, который будет наилучшим образом подходить под ваши задачи, иначе можно только усложнить свою работу. Чтобы помочь с правильным выбором, представляем вашему вниманию краткий обзор наиболее востребованных веб-фреймворков на Python в 2020 г.

1. Django

Звезд на GitHub: 47.8k

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

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

Пожалуй лучшей иллюстрацией возможностей этого фреймворка может послужить Instagram, созданный на Django в 2010 г. и проданный Facebook в 2012 г. за $1 млрд.

Ссылка на оф.сайт: http://www.djangoproject.com/

2. Flask

Звезд на GitHub: 49.4k

Flask — это микрофреймворк, состоящий всего из двух компонентов: Werkzeug и Jinja 2.

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

Jinja 2 — это шаблонизатор, который подставляет сгенерированные на сервере данные в сверстанную HTML-страницу.

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

Но не стоит заблуждаться, считая что данный фреймворк подходит только для небольших проектов. В 2015 г. разработчик Pinterest Steven Cohen в своем интервью рассказал, что Flask обрабатывает 12 млрд. ежедневных запросов.

Ссылка на оф.сайт: http://flask.pocoo.org/

3. Tornado

Звезд на GitHub: 18.9k

Tornado — это асинхронный веб-сервер и фреймворк, позволяющий разрабатывать высоконагруженные веб-сервисы, способные обрабатывать десятки тысяч запросов. Это, возможно, самый первый асинхронный фреймворк, написанный на Python. Он был разработан компанией FriendFeed, которую в 2009 приобрел Facebook, после чего исходный код фреймворка стал доступен open source.

Ссылка на оф.сайт: http://www.tornadoweb.org/

4. AIOHTTP

Звезд на GitHub: 9.3k

AIOHTTP — это асинхронный фреймворк, созданный русским программистом, разработчиком ядра Python, Андреем Светловым, который работал в Python над библиотекой asyncio. Библиотека развивалась, хотелось иметь HTTP, так и родилась идея создания AIOHTTP. Сейчас, как и большинство асинхронных фреймворков, он поддерживает и вебсокеты, и стриминги, и сигналы. Также одним из первых AIOHTTP начал поддерживать контекстные переменные, появившиеся в Python 3.7.

Ссылка на оф.сайт: https://docs.aiohttp.org/

5. Bottle

Звезд на GitHub: 6.7k

Bottle — это быстрый, простой и легковесный веб-фреймворк. Состоит он всего из одного файла (bottle.py) и не имеет зависимостей, кроме стандартной библиотеки Python. За счет своей минималистичности он работает быстрее большинства своих конкурентов, при этом имеет все необходимое для создания небольших проектов:

  • встроенный HTTP сервер,
  • роутинг с поддержкой URL-параметров,
  • поддержка шаблонов,
  • удобная работа с формами,
  • загрузка файлов,
  • отладка в “debug”-режиме.

Ссылка на оф.сайт: http://bottlepy.org/