Что нужно программистам Python, чтобы облегчить себе жизнь? Ответ - фреймворки. Автоматизируя выполнение избыточных задач, фреймворки сокращают время разработки и позволяют разработчикам сосредоточиться на логике приложения, а не на рутинных элементах.
Поскольку это один из ведущих языков программирования , для Python нет недостатка в фреймворках . У разных фреймворков есть свои преимущества и недостатки. Следовательно, выбор должен производиться на основе требований проекта и предпочтений разработчика.
В основном существует три типа фреймворков Python : полный стек, микро-фреймворк и асинхронный. Прежде чем перейти к обсуждению лучших фреймворков Python в 2021 году, давайте сначала кратко рассмотрим различные типы фреймворков Python.
Типы фреймворков Python
1. Полностековый фреймворк
Такие фреймворки - универсальное решение для всех требований разработчика. Генераторы форм, проверка форм и макеты шаблонов обычно доступны с типичной структурой полного стека.
2. Микрофреймворк
Это легкие фреймворки, которые не предлагают дополнительных функций и возможностей, таких как уровень абстракции базы данных, проверка формы и определенные инструменты и библиотеки. Разработчикам, использующим микрофреймворк, необходимо вручную добавить много кода и дополнительных требований.
3. Асинхронная структура
В последнее время набираюn популярность асинхронные фреймворки - это микрофреймворки, которые позволяют обрабатывать большой набор одновременных подключений. Как правило, асинхронная среда, созданная для Python, использует библиотеку asyncio языка программирования.
Лучшие фреймворки Python
1. AIOHTTP
Тип - асинхронный фреймворк
AIOHTTP - это фреймворк Python, который в значительной степени полагается на функции Python 3.5+, такие как async & awaits. Фреймворк Python использует библиотеку asyncio Python и, следовательно, является асинхронным фреймворком. Помимо того, что AIOHTTP является серверной веб-структурой, он также может служить клиентской структурой. Он предоставляет объект запроса и маршрутизатор, чтобы обеспечить перенаправление запросов к функциям, разработанным для их обработки.
Ключевые моменты:
- Позволяет эффективно строить виды
- Поддержка промежуточного программного обеспечения
- Подключаемая маршрутизация
- Поддерживает как клиентские веб-сокеты, так и серверные веб-сокеты без обратного вызова
2. Bottle
Тип - микрофреймворк
Bottle создает единый исходный файл для каждого приложения, разработанного с его использованием. Это один из лучших веб-фреймворков на Python. Микрофреймворк для Python изначально был разработан для создания API. Помимо стандартной библиотеки Python, у Bottle нет зависимостей, необходимых для создания небольших веб-приложений. Одним из наиболее важных преимуществ использования Bottle является то, что он позволяет разработчикам работать ближе к оборудованию. В дополнение к созданию упрощенных приложений для личного использования, Bottle отлично подходит для изучения организации веб-фреймворков и создания прототипов.
Ключевые моменты:
- Поддержка адаптера для сторонних шаблонизаторов и серверов WSGI / HTTP.
- Обеспечивает простой доступ из файлов cookie, данных, загрузки файлов и других метаданных, связанных с HTTP.
- Встроенный HTTP-сервер
- Поддержка плагина для разных баз данных
- Предоставляет маршруты отправки запросов с поддержкой параметров URL
3. CherryPy
Тип - микрофреймворк
CherryPy - популярный объектно-ориентированный фреймворк Python с открытым исходным кодом, который следует минималистичному подходу. Микро-фреймворк - один из старейших фреймворков Python, дебютировавший в июне 2002 года.
Любое веб-приложение на базе CherryPy представляет собой автономное приложение Python со своим собственным встроенным многопоточным веб-сервером и работает на любой ОС с поддержкой Python. Такое приложение можно развернуть везде, где может работать обычное приложение Python.
Нет необходимости в сервере Apache для запуска приложений, разработанных с использованием CherryPy. Микрофреймворк позволяет разработчикам использовать любые технологии для доступа к данным, создания шаблонов и так далее.
Ключевые моменты:
- Ряд готовых инструментов для аутентификации, кэширования, кодирования, сеансов, статического контента и многого другого.
- Гибкая встроенная система плагинов
- HTTP / 1.1-совместимый веб-сервер с пулом потоков WSGI
- Встроенная поддержка покрытия, профилирования и тестирования
- Предлагает простоту одновременного запуска нескольких HTTP-серверов.
- Мощная система настройки
- Работает на Android
4. CubicWeb
Тип - полнофункциональный фреймворк
CubicWeb, разработанный и курируемый Logilab, представляет собой бесплатный семантический веб-фреймворк с открытым исходным кодом на основе Python. На основе модели данных CubicWeb требует, чтобы она была определена для разработки функционального приложения.
В отличие от других популярных фреймворков Python, которые используют отдельные представления и модели, CubicWeb использует куб. Затем несколько кубов объединяются для создания экземпляра с помощью базы данных, веб-сервера и некоторых файлов конфигурации.
Ключевые моменты: -
- Поддержка OWL (язык веб-онтологий) и RDF (структура описания ресурсов)
- Многоразовые компоненты
- Рабочие процессы безопасности
- Упрощает запросы, связанные с данными, с помощью встраивания RQL (Relational Query Language)
- Поддержка нескольких баз данных
5. Dash
Тип - микрофрейморк
Dash - это фреймворк на основе Python с открытым исходным кодом для создания аналитических веб-приложений. Это идеальный фреймворк Python для специалистов по данным, которые мало разбираются в механике веб-разработки.
Приложения, разработанные с помощью Dash, представляют собой веб-серверы, на которых работает Flask и которые обмениваются данными с пакетами JSON через HTTP-запросы. Их интерфейс визуализирует компоненты с помощью ReactJS. Плагины Flask можно использовать для расширения возможностей Dash.
Поскольку приложения Dash отображаются в веб-браузере и могут быть развернуты на серверах, они кроссплатформенны и готовы к работе с мобильными устройствами. Разработчикам Dash предоставляется доступ к базовому экземпляру Flask, а также ко всем его настраиваемым свойствам.
Ключевые моменты:
- Приложения Dash требуют очень мало шаблонного кода для начала работы
- Обработка ошибок (сервер развертывания Dash)
- Высокая степень настройки
- Интеграция с LDAP (сервер развертывания Dash)
- Поддержка плагинов
- Простой интерфейс для связывания элементов управления пользовательского интерфейса, включая раскрывающиеся списки, графики и ползунки
- Маршрутизация URL-адресов (сервер развертывания Dash)
6. Django
Тип - полнофункциональный фреймворк
Django - один из самых популярных фреймворков веб-разработки для разработки приложений Python. Фактически, он стал одним из 10 лучших фреймворков для веб-разработки 2021 года . Фреймворк Django следует принципу DRY ( D on't R epeat Y ourself).
В отличие от других, бесплатная и полнофункциональная среда Python с открытым исходным кодом включает большое количество встроенных функций, а не предлагает их как отдельные библиотеки. Django использует ORM для сопоставления объектов с таблицами базы данных.
Это позволяет коду работать в разных базах данных, а также упрощает перенос из одной базы данных в другую. Хотя Django имеет встроенную поддержку MySQL, PostgreSQL, SQLite и Oracle Database, он может поддерживать другие базы данных через сторонние драйверы.
Ключевые моменты: -
- Множество готовых к использованию библиотек
- Поддержка аутентификации
- Миграция схемы базы данных
- Объектно-реляционный преобразователь (ORM)
- Поддержка веб-серверов
- Движок шаблонов
- Маршрутизация URL
7. Falcon
Тип - микрофреймворк.
Falcon - еще один широко используемый фреймворк Python, предназначенный для быстрого создания веб-API. В отличие от других фреймворков Python, которые требуют загрузки большого количества зависимостей для создания HTTP API, Falcon позволяет разработчикам создавать более понятный дизайн, позволяющий использовать архитектуры HTTP и REST.
Согласно тесту, проведенному Sanic, Falcon может обрабатывать большинство запросов с тем же оборудованием, что и все его современники. Фреймворк Python нацелен на 100% покрытие кода. Falcon используется крупными игроками, такими как LinkedIn, OpenStack и RackSpace.
Ключевые моменты:
- Расширяемая, высоко оптимизированная кодовая база
- Обработка DRY запроса через компоненты промежуточного программного обеспечения и хуки
- Легкость доступа к заголовкам и телам через классы запросов и ответов.
- Дополнительный прирост скорости с поддержкой Cython
- Идиоматические ответы об ошибках HTTP
- Классы ресурсов и шаблоны URI на основе REST предлагают интуитивно понятную маршрутизацию
- Модульное тестирование с помощью помощников и макетов WSGI
- Предварительная обработка исключений
8. Flask
Тип - микрофреймворк.
Flask - еще один популярный фреймворк Python, доступный по лицензии BSD. Микрофреймворк, созданный на основе среды Sinatra Ruby, требует шаблона Jinja2 и инструментария Werkzeug WSGI. Благодаря легкому и модульному дизайну Flask легко адаптируется.
Flask позволяет разработчикам создать прочную основу веб-приложения, на которой можно использовать любые необходимые расширения. Микро-фреймворк совместим с Google App Engine.
Ключевые моменты:
- Встроенный быстрый отладчик
- Обработка HTTP-запросов
- Встроенный сервер разработки
- Шаблоны Jinja2
- Отправка запросов RESTful
- Поддержка подключения любого ORM
- Поддерживает безопасные файлы cookie для установления сеансов на стороне клиента
- На основе Unicode
- Поддержка модульного тестирования
- Соответствие WSGI 1.0
9. Giotto
Тип - структура полного стека.
Основанная на шаблоне контроллера представления модели, Giotto представляет собой платформу приложения для Python. Чтобы веб-дизайнеры, веб-разработчики и системные администраторы могли работать независимо друг от друга, Giotto разделяет элементы модели, представления и контроллера по порядку.
Giotto включает в себя модули контроллеров, которые позволяют пользователям создавать приложения поверх Интернета, IRC (Internet Relay Chat) и командной строки.
Ключевые моменты: -
- Автоматическая маршрутизация URL
- Сохранение базы данных с помощью SQLAlchemy
- Чрезвычайно лаконичный код
- Функциональные шаблоны CRUD
- Общие модели и представления
- Встроенный кеш с поддержкой Memcache и Redis (доступный API для расширения поддержки других движков)
- Jinja2 для шаблонов HTML (API доступен для поддержки других движков шаблонов)
- Несколько подключаемых контроллеров
- Интерфейс RESTful с обычным CRUD-сайтом «браузер POST»
10. Growler
Тип - асинхронный фреймворк, вдохновленный фреймворками NodeJS и Express / Connect, Growler - это микро-веб-фреймворк, написанный на основе библиотеки asyncio Python.
В отличие от других традиционных фреймворков Python, запросы в Growler обрабатываются не во фреймворке, а через технологию промежуточного программного обеспечения.
Growler - лучший выбор среди фреймворков Python для простого и быстрого внедрения сложных приложений. Первоначально Growler был разработан его автором, чтобы просто научиться использовать библиотеку asyncio на самом низком уровне.
Ключевые моменты:
- Легко увидеть ход программы из-за отсутствия необходимых обратных вызовов и правильных блоков try / except
- Поддержка множества пакетов с открытым исходным кодом
- Используйте декораторы для написания чистого, многоразового кода
- Модуль Ziapp позволяет заархивировать все приложение в один исполняемый файл.
Дополнительные фреймворки Python
11. Hug
Тип - Микрофреймворк
Hug разработан, чтобы позволить разработчикам Python разработать API один раз, а затем использовать его где угодно. Фреймворк Python упрощает разработку API, предлагая несколько интерфейсов. Он отмечен как самый быстрый веб-фреймворк для Python 3.
Независимо от того, занимаетесь ли вы локальной разработкой, используя HTTP или интерфейс командной строки, Hug позволяет быстро и легко завершить разработку приложений. Чтобы вывести производительность на новый уровень, Hug потребляет ресурсы только при необходимости и использует Cython для компиляции.
Ключевые моменты:
- Проверка на основе аннотаций
- Встроенное управление версиями
- Поддерживает автоматическую документацию
12. MorePath
Тип - микрофреймворк
Обозначенный как «Веб-фреймворк Python Super Powered», MorePath обеспечивает минимальные затраты на установку. Он разработан специально для быстрого развертывания и запуска большинства типичных сценариев использования, в том числе для создания стандартных структур данных Python в веб-службах RESTful.
Микрофреймворк MorePath - это очень гибкий веб-фреймворк, управляемый моделями. Уникальная функция, доступная фреймворку Python, заключается в том, что он автоматически превращает пути, определенные в фреймворке, в ссылки при создании приложений с наиболее чистыми URL-адресами.
Ключевые моменты:
- Все виды являются общими. Повторное использование представлений в представлениях
- Поставляется со всеми необходимыми инструментами для разработки веб-сервисов RESTful.
- Создание универсальных пользовательских интерфейсов так же просто, как создание подклассов
- Возможность расширения с помощью простого, последовательного и универсального механизма расширения и отмены
- Гибкие, простые и мощные разрешения
13. Pycnic
Тип - микрофреймворк
Pycnic - это объектно-ориентированный микрофреймворк, который считается самым быстрым для создания API-интерфейсов на основе JSON. Небольшой, автономный и оптимизированный для JSON фреймворк API способен прочно удерживать свои позиции среди крупных игроков. Поскольку Pycnic создает только веб-API, он занимает минимум места и, следовательно, работает быстро.
Ключевые моменты: -
- Встроенная обработка ошибок
- Возможность обработки запросов на основе JSON
- Обрабатывает маршрутизацию
- Поддержка файлов cookie
14. Pylons Framework
Тип - полнофункциональный фреймворк
Pylons Framework - это фреймворк на основе Python с открытым исходным кодом, ориентированный на быструю разработку приложений. Фреймворк разработан с использованием некоторых из лучших элементов и свойств языков, включая Perl, Python и Ruby.
Несмотря на то, что он доступен в режиме обслуживания, некоторые разработчики по-прежнему используют фреймворк Pylons из-за его способности предлагать очень гибкую структуру для веб-разработки. Для обеспечения возможности повторного использования полнофункциональная структура широко использует WSGI (интерфейс шлюза веб-сервера).
Ключевые моменты: -
- Проверка и генерация HTML-формы
- Маршруты
- Текстовые шаблоны
- Отправка URL
- Сопоставление URL-адресов на основе конфигурации маршрутов через WebHelpers
15. Pyramid
Тип - полнофункциональный фреймворк
Pyramid - еще один ведущий фреймворк Python. Основная цель среды веб-разработки на основе Python с открытым исходным кодом - достичь как можно большего с минимальной сложностью.
Наиболее желательным аспектом пирамиды является способность одинаково хорошо работать как с небольшими, так и с полномасштабными приложениями. Более того, существует множество доступных ресурсов для расширения его возможностей в соответствии с требованиями.
Ключевые моменты: -
- Гибкая аутентификация и авторизация
- Декораторы функций
- Предикаты
- Рендереры
- Однофайловые приложения
- Шаблоны и спецификации ресурсов
- Генерация URL
16. Sanic
Тип - асинхронный фреймворк.
Sanic - это простой фреймворк Python с открытым исходным кодом, созданный поверх uvloop, разработанный специально для предоставления быстрых HTTP-ответов посредством асинхронной обработки запросов. Следовательно, это асинхронный фреймворк для Python.
Sanic поддерживает асинхронные обработчики запросов, что делает его совместимым с функциями async / await в Python 3.5. Это приводит к увеличению скорости, а также предлагает возможности неблокирования.
Во время теста производительности с одним процессом и 100 подключениями Sanic смог обработать 33 342 запроса за одну секунду.
Ключевые моменты: -
- Возможность читать и записывать файлы cookie
- Позволяет вести журнал различных типов, например журнал доступа и журнал ошибок.
- Представления на основе классов
- Обработчики с поддержкой простых в применении декораторов
- Поддержка плагинов
- Поддерживает схемы для суб-маршрутизации в приложении
- Объект конфигурации может быть изменен либо с использованием точечной нотации, либо как словарь.
17. Tornado
Тип - асинхронный фреймворк
Tornado - это фреймворк Python с открытым исходным кодом и асинхронная сетевая библиотека. Помимо решения проблемы C10k (что просто означает обработку 10 тыс. Соединений в любой момент времени), асинхронная структура использует неблокирующий сетевой ввод-вывод.
Фреймворк Python изначально был разработан для компании FriendFeed, которая была приобретена Facebook в 2009 году. Tornado - идеальный инструмент для создания приложений, требующих высокой производительности и одновременного использования нескольких тысяч пользователей.
Ключевые моменты:
- Позволяет реализовать сторонние схемы аутентификации и авторизации
- Предлагает высококачественную продукцию
- Услуги в реальном времени
- Поддерживает перевод и локализацию
- Поддержка аутентификации пользователей
- Веб-шаблоны
18. TurboGears
Тип - структура полного стека
TurboGears - это управляемая данными, открытая, полнофункциональная среда веб-приложений для Python. Платформа позволяет разработчикам быстро разрабатывать расширяемые веб-приложения, управляемые данными.
Помимо поддержки гибкой и мощной ORM, TurboGears имеет понятные шаблоны. Фреймворк с полным стеком использует такие компоненты, как Genshi, Repoze, SQLAlchemy и WebOb, для простой и быстрой разработки приложений, требующих подключения к базе данных.
Ключевые моменты: -
- Все функции реализованы в виде декораторов функций.
- Доступные инструменты командной строки
- Интеграция библиотеки MochiKit JavaScript
- Поддержка нескольких баз данных
- Архитектура в стиле MVC
- Шаблоны PasteScript
- ToscaWidgets для упрощения координации дизайна внешнего интерфейса и развертывания сервера
- Использует Pylons в качестве веб-сервера
- Поддержка валидации с помощью FormEncode
19. Web2Py
Тип - структура полного стека
Для разработчиков Python, ищущих масштабируемую структуру полного стека, Web2Py может быть ответом. Фреймворк Python с открытым исходным кодом поставляется с собственной веб-средой IDE, которая включает редактор кода, отладчик и развертывание в один щелчок.
Хотя Web2Py позволяет пользователям создавать динамический веб-контент на Python, он не поддерживает Python 3. Система продажи билетов - одна из наиболее важных функций инфраструктуры Python. Система выдает пользователю билет всякий раз, когда возникает ошибка.
Ключевые моменты: -
- Возможность работать на любой платформе веб-хостинга, которая обеспечивает поддержку Python или Java и Python.
- Обратная совместимость
- Встроенная защита данных для предотвращения нескольких распространенных уязвимостей, в том числе межсайтовых сценариев, ошибок внедрения и выполнения вредоносных файлов.
- Отсутствие требований к установке и настройке
- Соответствует шаблону MVC
- Обеспечивает поддержку интернационализации
- Читаемость нескольких протоколов
- Ролевой контроль доступа
Резюме
Чтобы оценить все (или большую часть) вышеупомянутых фреймворков Python, вам необходимо обладать хотя бы промежуточной компетенцией в высокоуровневом интерпретируемом языке программирования.
Какой из фреймворков Python должен или не должен был попасть в список? Какой ваш любимый фреймворк Python? Сообщите нам об этом в комментариях.
0 комментариев
Добавить комментарий