Веб-фреймворки Python нужны для Веб-приложений.
Веб-фреймворки Python позволяют создавать сложные и солидные Веб-приложения, что сотни и тысячи раз доказано многими всемирно известными фирмами.
Привожу информацию со страницы https://pythonpip.ru/osnovy/luchshie-freymvorki-python :
Популярные фреймворки Python – какой выбрать
Опубликовано 01.12.2021
В этом руководстве мы обсудим лучшие из различных важных веб-фреймворков Python и их основные функции. Как мы знаем, Python – это очень востребованный и эффективный язык программирования, который содержит обширные библиотеки и фреймворки практически для каждой технической области.
Фреймворки упрощают разработку приложений (или программного обеспечения) для разработчиков. Они предлагают автоматическое выполнение сложных задач, сокращают время разработки и в значительной степени сосредоточены на логике приложения, а не на общем элементе.
Python поставляется с множеством фреймворков, и у каждого есть свои преимущества и недостатки. Всё, что нам нужно – проанализировать требования к нашему проекту, чтобы выбрать подходящий.
Мы обсудим следующие фреймворки Python:
- Bottle
- CherryPy
- AIOHTTP
- Dash
- Falcon
- Flask
- Giotto
- Django
- Growler
- Uvloop
- Sanic
- MorePath
- Picnic
- Pylons
- Pyramid
- TurboGears
- Web2py
- Hug
- CubicWeb
Прежде чем подробно объяснять каждый фреймворк, давайте кратко представим различные типы фреймворков Python.
Типы фреймворков Python
Существуют следующие три основных типа.
1. Фреймворк Full-Stack
Эти фреймворки соответствуют всем требованиям веб-разработки, таким как генераторы форм, проверка форм и макеты шаблонов. Это основные функции типичной полнофункциональной платформы.
2. Микро-фреймворк
Микро-фреймворки требуют большого количества кода и дополнительных требований, вносимых вручную. Этот вид фреймворка не предоставляет возможности уровня абстракции данных, проверки формы и конкретных инструментов и библиотек.
3. Фреймворки асинхронной структуры
В последнее время набирают популярность асинхронные фреймворки, позволяющие обрабатывать большой набор одновременных подключений. Они использует библиотеку asyncio для одновременного запуска процесса.
Лучшие фреймворки Python
1. Bottle
Это микро-фреймворк, который создаёт единый источник файла для каждого разрабатываемого приложения, использующего его. Этот фреймворк в первую очередь ориентирован на разработку API-интерфейсов и является одним из лучших веб-фреймворков Python.
Bottle не требует других зависимостей для создания небольших веб-приложений. Он позволяет разработчику работать в тесном контакте с оборудованием и является наиболее подходящей средой для создания небольших приложений и упрощенных приложений для личного пользования.
Ключевые особенности Bottle:
Это встроенный HTTP-сервер.
Поставляется с поддержкой плагинов для разных баз данных.
Предлагает маршрут отправки запроса.
Мы можем получить доступ к стороннему шаблонизатору и серверам WSGI / HTTP.2. CherryPy
CherryPy – это объектно-ориентированная микросхема с открытым исходным кодом. Он следует минималистичному подходу. Это один из старейших фреймворков Python, представленных в 2002 году. Для работы cherryPy нам не нужно устанавливать сервер apache. Этот фреймворк позволяет нам использовать любую технологию для доступа к данным, используя шаблоны в Cetera.
Ключевые особенности CherryPy:
Приложение CherryPy работает на Android.
Имеет гибкую встроенную систему.
Обеспечивает надежную систему конфигурации.
Предлагает встроенную поддержку покрытия, профилирования и тестирования.
Предлагает простоту одновременного запуска нескольких HTTP-серверов.3. AIOHTTP
Это асинхронный фреймворк, который сильно зависит от функций Python 3.5+, таких как async & await. Библиотека Python asyncio играет жизненно важную роль в функционировании этого фреймворка. AIOHTTP, являясь серверной веб-структурой, также может служить клиентской структурой. Мы можем перенаправить запросы, используя объект запроса и маршрутизатор.
Ключевые особенности AIOHTTP:
Имеет подключаемую маршрутизацию.
Даёт возможность эффективно построить вид.
Сигналы.
Поддерживает как серверные WebSockets, так и клиентские WebSockets, без необходимости обратного вызова.
Поддерживает промежуточное программное обеспечение.4. Dash
Это микро-фреймворк на основе Python, который используется для разработки аналитических веб-приложений и популярен среди специалистов по данным. Он подходит для тех специалистов по данным, которые мало разбираются в механике веб-разработки.
Приложение Dash также может запускать веб-сервер, такой как Flask, и связываться с пакетами JSON через HTTP-запросы.
ReactJS используется для рендеринга интерфейса. Мы можем расширить возможности Dash с помощью плагинов Flask. Приложения, разработанные с использованием Dash, отображаются в веб-браузере и могут быть развернуты на сервере. Эти приложения кроссплатформенны и готовы к работе с мобильными устройствами.
Ключевые особенности Dash:
Имеется обширная поддержка плагинов.
Работает с процедурой URL(сервер разработки Dash).
Поддерживает высокую степень настройки.
Может эффективно обрабатывать ошибки.
Интеграция LDAP(сервер разработки Dash).
Для создания приложений Dash требуется меньше кода.5. Falcon
Это микро-фреймворк, используемый для создания веб-API, и еще один широко используемый фреймворк Python. Он требует множества зависимостей для создания HTTP API и позволяет разработчику создать более понятный дизайн, допускающий архитектуру HTTP и REST.
Falcon широко используется в таких крупных организациях, как LinkedIn, OpenStack и RackSpace. Он может обрабатывать больше запросов на одном и том же оборудовании, чем все его современники. Эта структура ориентирована на 100% покрытие кода.
Ключевые особенности Falcon:
Предварительная обработка исключений.
Может обеспечить дополнительную скорость с поддержкой Cython.
Имеет сильно оптимизированную базу кода, а также расширяемый.
Модульное тестирование с помощью помощника WSGI и макетов.
Его классы запросов и ответов обеспечивают легкий доступ к заголовкам и объектам.
Собственные ответы на ошибки HTTP.6. Flask
Flask – еще одна популярная микро-инфраструктура Python, которая распространяется под лицензией BSD. Фреймворк Sinatra Ruby вдохновляет на это. Для этого фреймворка требуются шаблоны Jinja2 и инструментарий Werzeug WSGI.
Он легкий и имеет модульную конструкцию. Flask легко адаптируется.
Используя Flask, разработчики могут создать прочную основу веб-приложения, на которой можно будет использовать любое необходимое расширение. Он также совместим с Google App Engine.
Ключевые особенности Flask:
Предоставляет встроенную поддержку.
Поддерживает создание шаблонов jinja2.
Основан на Unicode.
Обработка HTTP-запросов.
Имеет встроенный быстрый отладчик.
Помогает подключить любой ORM.
Поддерживает безопасные файлы cookie для установления сеансов на стороне клиента.7. Giotto
Это полнофункциональная платформа, основанная на Model View Controller(MVC). Giotto – это платформа приложения, которая разделяет элементы модели, представления и контроллера по порядку. Он обеспечивает некоторые важные характеристики, такие как автоматическая маршрутизация URL-адресов и Jinja2 для шаблонов HTML с API и доступным интерфейсом RESTful.
Поставляется с модулем контроллера, который предлагает разработчикам платформу для создания приложений с использованием командной строки и диаграмм Internet Relay(IRC).
Ключевые особенности Giotto:
Имеет возможность автоматической маршрутизации URL-адресов.
Функциональные шаблоны.
Есть несколько подключаемых контроллеров.
Общая модель и виды.
Доступность Jinja2 для HTML-шаблонов.
Чрезвычайно лаконичный код.
Поддержка баз данных с помощью SQLAlchemy.8. Django
Django – это полнофункциональный Python-фреймворк. Самый известный и любимый фреймворк для разработки полнофункциональных веб-приложений. С течением времени набирает еще большую популярность. В 2021 году стал одним из 10 лучших фреймворков для веб-разработки. Он основан на принципе DRY(Don’tRepeat Yourself).
Django предлагает несколько встроенных библиотек и отличные функции, которые доступны для бесплатного использования. Django использует ORM для сопоставления объектов с таблицами базы данных.
Предлагает поддержку баз данных, а также обеспечивает легкость перехода из одной базы данных в другую. Однако ему присуща поддержка баз данных MySQL, PostgreSQL, SQLite и Oracle. Мы также можем использовать другую базу данных, используя сторонние драйверы.
Ключевые особенности Django:
Намного безопаснее по сравнению с другими веб-фреймворками.
URL-маршрутизация.
Шаблонизатор.
Миграция схемы базы данных.
Поддержка аутентификации.
Он имеет ORM (модель объектных отношений).
Множество готовых к использованию библиотек.9. Growler
Это асинхронная структура, построенная на asyncio; он основан на фреймворках Node JS и Express / Connect. В этой структуре запрос не обрабатывается самой структурой, но обрабатывается с помощью технологии промежуточного программного обеспечения. Это наиболее подходящий фреймворк для более простой реализации сложных приложений.
Ключевые особенности Growler:
Поддержка множества пакетов с открытым исходным кодом.
Используется декоратор для написания чистого многоразового кода.
Использует декораторы, чтобы уменьшить сложность кода, и мы можем писать повторно используемый код.
Есть модуль ziapp, который позволяет заархивировать все приложение в один исполняемый файл.10. Uvloop
Он задуман как один из сверхбыстрых веб-фреймворков Python, доступных среди остальных фреймворков, и мы не можем игнорировать этот факт. Считается заменой цикла событий asyncio; следовательно, его можно использовать либо в приложении на основе asyncio, либо для замены asyncio в существующем приложении. Некоторые разработчики утверждают, что Uvloop в два раза быстрее, чем Node JS, events и любой асинхронный фреймворк Python.
Ключевые особенности Uvloop:
быстрая скорость освещения;
замена цикла событий asyncio.11. Sanic
Sanic – это веб-фреймворк, построенный на uvloop. Он предоставляет одну из лучших функций, то есть предлагает быстрые HTTP-ответы через асинхронную обработку запросов. Он предоставляет неблокирующие возможности, повышающие скорость. Более того, он поддерживает обработку запросов и сравнивает их с функциями await / async Python 3.5.
Ключевые особенности Sanic:
Представления на основе классов.
Подключаемая опора.
Возможность чтения и записи файлов cookie.
Позволяет вести различные типы журналов, например журналы ошибок и журналы доступа.
Наличие обработчиков с удобной поддержкой декораторов.12. MorePath
MorePath – это структура Python WSGI, которая в первую очередь ориентирована на выполнение большего количества вариантов использования чисел. Кроме того, фреймворк отвечает за прикладное программирование набора ответов (ASAP). Он также включает стандартную структуру данных Python, созданную в веб-службах RESTful.
MorePath предоставляет важную функцию: автоматически преобразует определенные пути в платформе в ссылки для создания приложений с наиболее чистыми URL-адресами.
Ключевые особенности Morepath:
Он предоставляет простые, гибкие и надежные разрешения.
Позволяет создавать общий пользовательский интерфейс так же просто, как выделить подклассы.
Все представления являются общими, повторно используются.
Предлагает все необходимые инструменты для разработки веб-сервисов RESTful.
Можно расширять с помощью простого, связного и универсального механизма расширения и отмены.13. Picnic
Это объектно-ориентированный микро-фреймворк, используемый для разработки API-интерфейсов на основе JSON. Этот фреймворк оптимизирован для API на основе JSON, который может удерживать позицию среди лучших фреймворков Python, поскольку он создаёт самые быстрые веб-API.
Ключевые особенности Picnic:
Поддерживает файлы cookie.
Обработка маршрутизации.
Имеет встроенную обработку ошибок.
Способен обрабатывать запросы на основе JSON.14. Pylons
Фреймворк Pylons – это полнофункциональный фреймворк с открытым исходным кодом, предназначенный для быстрой разработки приложений. Этот фреймворк включает в себя одни из лучших элементов и свойств Perl, Python и Ruby.
Он доступен в режиме обслуживания, и многие разработчики используют фреймворк Pylons, поскольку он обеспечивает очень гибкую структуру веб-разработки. Он способствует повторному использованию и использует WSGI (интерфейс шлюза веб-сервера).
Ключевые особенности Pylons:
Маршруты.
Отправляет URL-адреса.
Сопоставление URL-адресов на основе конфигурации маршрутов через WebHelpers.
Обеспечивает проверку и создание HTML-форм.15. Pyramid
Pyramid – это полнофункциональный веб-фреймворк с открытым исходным кодом, который призван максимально снизить сложность. Одним из лучших преимуществ Pyramid является то, что он может одинаково хорошо работать как с небольшими, так и с крупномасштабными приложениями. Pyramid регулярно обновляется разработчиками и работает на Python 3. Текущая версия Pyramids – 1.10, и это десятое обновление с 2010 года.
Ключевые особенности Pyramid:
Генерация URL.
Одно-файловые приложения.
Имеет гибкую аутентификацию и авторизацию.
Просмотр предикатов и множество представлений для каждого маршрута.
Рендеры.
Предикаты.
Шаблоны и спецификация активов.
Декораторы функций.16. TurboGears
TurboGears – это полнофункциональная среда Python для веб-приложений с открытым исходным кодом, управляемых данными. Позволяет разработчикам быстро разрабатывать веб-приложения. TurboGears поставляется с понятным шаблоном и поддерживает гибкую и мощную ORM. Эта структура использует такие компоненты, как Genshi, Repoze, SQLAlchemy и webOp, для быстрой разработки приложений, требующих подключения к базе данных.
Ключевые особенности TurboGears:
Все возможности TurboGears реализованы как декораторы функций.
Доступные инструменты командной строки.
Поддержка нескольких баз данных.
Архитектура в стиле MVC.
Использует пилоны в качестве веб-сервера.
Шаблоны PasteScript.
Поддержка проверки с помощью Form Encode.17. Web2Py
Фреймворк Web2Py – это масштабируемый фреймворк Python с открытым исходным кодом, который позволяет пользователям быстро и плавно разрабатывать веб-приложения. Он не зависит от платформы, что означает, что он поддерживает все популярные операционные системы. Кроме того, эта структура предоставляет возможность упростить процесс разработки веб-приложений с помощью веб-интерфейса, веб-сервера и базы данных SQL.
Ключевые особенности web2py:
Единый API.
Следуйте шаблону MVC.
Ролевой контроль доступа.
Нет требований к установке и настройке.
Обеспечивает поддержку интернационализации.
Обратная совместимость.
Читаемость нескольких протоколов.
Может работать на любой платформе веб-хостинга, которая предлагает поддержку Python или Java и Python.18. Hug
Этот микро-фреймворк используется для разработки и создания веб-API. Он потребляет ресурсы, когда это необходимо, и использует Cython для компиляции, и этот фреймворк позволяет нам очень легко и быстро завершить разработку приложения.
Ключевые особенности Hug:
Поддержка автоматической документации.
Встроенное управление версиями.
Следует принципу «после реализации можно использовать где угодно».19. CubicWeb
Cubic Web – это полнофункциональный фреймворк, разработанный и курируемый Logilab, это бесплатный семантический веб-фреймворк с открытым исходным кодом, основанный на Python. Cubic Web основан на модели данных, и для разработки функционального приложения требуется, чтобы она была определена. Cubic Web использует куб, в то время как другое приложение использует отдельные представления и модели.
Ключевые особенности Cubic Web:
Поддержка нескольких баз данных.
Безопасность.
Многоразовые компоненты.
Упрощает запросы, связанные с данными, с помощью RQL.
OWL (язык веб-онтологий).Заключение
В этом руководстве мы упомянули все основные фреймворки Python, которые относятся к различным категориям. Разработчик может выбрать любой в соответствии с требованиями проекта.
При копировании публикации пропали все изображения, что привело, к моему восторгу, к пропаже всей рекламы! Вставил многие изображения для оживления текста.
Лично я не собираюсь пока что создавать сайты, используя Веб-фреймворки Python — хочу всего лишь добиться исполнения программ Python на страницах своих сайтов.
Для начала попробую использовать Bottle — неспроста он оказался первым в приведенном списке.
Хорошо бы посетить какой-нибудь Форум Python или Вебинар Python, чтобы получить чёткий ответ на вопрос «Какой Веб-фреймворк использовать для размещения программы Python на странице сайта?» Запрос в Яндексе не дал чёткого ответа!
!…
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…