Типы фреймворков Python
1. Фреймворк с полным стеком
Такие фреймворки — универсальное решение для всех требований разработчиков. Генераторы форм, проверка форм и макеты шаблонов обычно доступны в типичной полнофункциональной среде.
2. Микрофреймворки
Это легкие фреймворки, которые не предлагают дополнительных функций и функций, таких как уровень абстракции базы данных, проверка форм и специальные инструменты и библиотеки. Разработчикам, использующим микрофреймворки, приходится вручную добавлять много кода и разрабатывать дополнительные функции.
3. Асинхронные фреймворки
Асинхронные фреймворки, набирающая популярность в последнее время, представляют собой микрофреймворки, который позволяет обрабатывать большой набор одновременных подключений. Как правило, асинхронная среда, созданная для Python, использует библиотеку asyncio.
Лучшие фреймворки Python
1. AIOhttp
Тип — асинхронный фреймворк AIOHTTP — это фреймворк Python, который в значительной степени опирается на функции асинхронности Python 3.5+, . Фреймворк Python использует библиотеку asyncio Python и, следовательно, является асинхронным фреймворком. Помимо того, что AIOHTTP является серверной веб-платформой, он также может служить клиентской структурой. Он предоставляет объект запроса и маршрутизатор, позволяющие перенаправлять запросы к функциям, разработанным для их обработки.
Основные моменты:
- Позволяет эффективно строить представления
- Поддержка промежуточного программного обеспечения
- Подключаемая маршрутизация
- Поддерживает Сигналы
- Поддерживает как клиентские веб-сокеты, так и серверные веб-сокеты без Callback Hell
2. Bottle
BottleType — Microframework Bottle создает один исходный файл для каждого разработанного с его помощью приложения. Это одна из лучших веб-платформ Python. Bottle для Python изначально был разработан для создания API. Помимо стандартной библиотеки Python, Bottle не имеет зависимостей, необходимых для создания небольших веб-приложений. Помимо создания простых приложений для личного использования, Bottle отлично подходит для создания приложений и создания прототипов.
Основные моменты:
- Поддержка адаптеров для сторонних механизмов шаблонов и серверов WSGI/HTTP.
- Обеспечивает простой доступ из файлов cookie, данных, загрузки файлов и других метаданных, связанных с HTTP.
- Встроенный HTTP-сервер
- Поддержка плагинов для разных баз данных
- Предоставляет маршруты отправки запросов с поддержкой параметров URL.
3. CherryPy
CherryPy — это популярный объектно-ориентированный фреймворк Python с открытым исходным кодом, который следует минималистичному подходу. Микрофреймворк — один из старейших фреймворков Python, появившийся в июне 2002 года.
Любое веб-приложение на базе CherryPy представляет собой автономное приложение Python со встроенным многопоточным веб-сервером и работает на любой ОС с поддержкой Python. Такое приложение можно развернуть везде, где может работать обычное приложение Python.
Нет необходимости в сервере Apache для запуска приложений, разработанных с использованием CherryPy. Микрофреймворк позволяет разработчику (разработчикам) использовать любой тип технологии для доступа к данным, создания шаблонов и так далее.
Основные моменты:
- Ряд готовых инструментов для аутентификации, кэширования, кодирования, сеансов, статического контента и многого другого.
- Гибкая встроенная система плагинов
- Веб-сервер с пулом потоков WSGI, совместимый с HTTP/1.1
- Встроенная поддержка профилирования и тестирования
- Предлагает простоту одновременного запуска нескольких HTTP-серверов.
- Мощная система конфигурации
- Работает на Android
4. CubicWeb
Cubic WebType — полнофункциональная платформа CubicWeb, разработанная и курируемая Logilab, — это бесплатная семантическая веб-инфраструктура с открытым исходным кодом на основе Python.
В отличие от других популярных фреймворков Python, которые используют отдельные представления и модели, CubicWeb использует вннутренннюю структуру называемую кубом. Затем несколько кубов объединяются для создания фуннкций с помощью базы данных, веб-сервера и некоторых файлов конфигурации.
Основные моменты:
- Поддержка OWL и RDF
- Многоразовые компоненты
- Встроенные функции безопасности
- Упрощает запросы, связанные с данными, с внедрением RQL (язык реляционных запросов)
- Поддержка нескольких баз данных
5. Dash
Dash — это фреймворк на основе Python с открытым исходным кодом для создания аналитических веб-приложений. Это идеальная среда Python для специалистов по данным, которые не очень разбираются в механике веб-разработки.
Приложения, разработанные с помощью Dash, представляют собой веб-серверы, на которых работает Flask и обмениваются данными с пакетами JSON через HTTP-запросы. Их интерфейс отображает компоненты с использованием ReactJS. Плагины Flask можно использовать для расширения возможностей Dash.
Поскольку приложения Dash отображаются в веб-браузере и могут быть развернуты на серверах, они являются кроссплатформенными и готовыми к работе с мобильными устройствами. Разработчикам Dash предоставляется доступ к базовому экземпляру Flask, а также ко всем его настраиваемым свойствам.
Основные моменты:
- Приложения Dash требуют очень небольшого шаблонного кода для начала работы
- Встроенная Обработка ошибок (Dash Deployment Server)
- Высокая степень персонализации
- Интеграция с LDAP (Dash Deployment Server)
- Поддержка плагинов
- Простой интерфейс для привязки элементов управления пользовательского интерфейса, включая раскрывающиеся списки, графики и ползунки.
- URL-маршрутизация (Dash Deployment Server)
6. Django
Django — одна из самых популярных сред веб-разработки для разработки приложений Python. Фактически, он стал одним из 10 лучших фреймворков для веб-разработки 2022 года.
Django это бесплатная полнофункциональная среда Python с открытым исходным кодом включает большое количество встроенных функций, а не предлагает их в виде отдельных библиотек. Django использует свой ORM для сопоставления объектов с таблицами базы данных.
Это позволяет коду работать с разными базами данных, а также упрощает миграцию из одной базы данных в другую. Хотя Django имеет встроенную поддержку MySQL, PostgreSQL, SQLite и Oracle Database, он может поддерживать другие базы данных через сторонние драйверы.
Основные моменты:
- Множество готовых библиотек
- Поддержка аутентификации
- Миграции схемы базы данных
- Объектно-реляционный преобразователь (ORM)
- Поддержка веб-серверов
- Механизм шаблонов
- URL-маршрутизация
7. Falcon
Falcon— микрофреймворк Falcon — еще один широко используемый фреймворк Python, предназначенный для быстрого создания веб-API. В отличие от других фреймворков Python, которые требуют загрузки множества зависимостей для создания HTTP API, Falcon позволяет разработчикам создавать простой дизайн, поддерживающий архитектуры HTTP и REST.
Falcon используется крупными игроками, такими как LinkedIn, OpenStack и RackSpace.
Основные моменты:
- Расширяемый, высокооптимизированный фреймворк
- Удобная обработка запросов через промежуточные компоненты и хуки
- Простота доступа к заголовкам и телам через классы запросов и ответов.
- Дополнительный прирост скорости с поддержкой Cython
- Идиоматические ответы об ошибках HTTP
- Вдохновленные REST классы ресурсов и шаблоны URI предлагают интуитивно понятную маршрутизацию
- Встроенное удобное модульное тестирование с помощью WSGI
8. Flask
FlaskType — микрофреймворк Доступный под лицензией BSD, Flask — еще один популярный фреймворк Python. Вдохновленный фреймворком Sinatra Ruby, микрофреймворк работает с Jinja2 и набораом инструментов Werkzeug WSGI. Благодаря своей легкой и модульной конструкции Flask легко адаптируеемый микрофреймворк.
Flask позволяет разработчикам создавать прочную основу для веб-приложений, на которой можно использовать любые необходимые расширения. Микрофреймворк совместим с Google App Engine.
- Основные моменты:
- Встроенный быстрый отладчик
- Обработка HTTP-запросов
- Встроенный сервер разработки
- Шаблоны Jinja2
- RESTful диспетчеризация запросов
- Поддержка подключения любого ORM
- Поддерживает безопасные файлы cookie для установления сеансов на стороне клиента.
- Поддержка модульного тестирования
- Соответствие WSGI 1.0
9. Giotto
Giotto — фреймворк с полным стеком. Основанный на шаблоне Model View Controller, Giotto — это фреймворк приложений для Python. Чтобы позволить веб-дизайнерам, веб-разработчикам и системным администраторам работать независимо друг от друга, Джотто разделяет элементы Model, View и Controller по порядку.
Основные моменты:
- Автоматическая маршрутизация URL-адресов
- Сохранение базы данных с помощью SQLAlchemy
- Чрезвычайно лаконичный код
- Функциональные шаблоны CRUD
- Общие модели и представления
- Встроенный кеш с поддержкой Memcache и Redis (доступный API для расширения поддержки других движков)
- Jinja2 для шаблонов HTML (доступен API для поддержки других механизмов шаблонов)
- Несколько подключаемых контроллеров
- Интерфейс RESTful с обычным CRUD-сайтом «браузер POST»
10. Growler
Growler — асинхронный фреймворк, вдохновленный фреймворками NodeJS и Express/Connect, Growler — это микровеб-фреймворк, написанный на основе библиотеки asyncio Python.
В отличие от других традиционных фреймворков Python, запросы в Growler обрабатываются не в фреймворке, а через технологию промежуточного программного обеспечения.
Лучший выбор среди фреймворков Python для простой и быстрой реализации сложных приложений, Growler изначально был разработан его автором, чтобы просто научиться использовать библиотеку asyncio на самых низких уровнях.
Основные моменты:
- Легко увидеть ход работы программы из-за отсутствия необходимых обратных вызовов и правильных блоков try/except.
- Поддержка множества пакетов с открытым исходным кодом
- Удобные встроенные декораторы для написания чистого, многократно используемого кода
- Модуль Ziapp позволяет заархивировать все приложение в один исполняемый файл.
. Необходимо каждый раз оценивать выбираемый фреймворк на соответствие требованиям конкретной задачи.
Все описанные фреймворки актуальны на 2022 год.
Тем кто изучает python и машинное обучение мы рекомендуем бесплатный урок от Otus , где вы создадите свою первую модель машинного обучения. Интенсив пройдет 16-17 мая в 18:00.
Уже в на интенсиве ты обучишь свою первую ML-модель!
🔥Мероприятие бесплатное. Продолжить осваивать навыки, необходимые для трудоустройства в Data Science, вы сможете на онлайн-курсе «Специализация Machine Learning».
Чтобы участвовать, зарегистрируйся на занятие