Веб-фреймворки Python

Веб-фреймворки Python нужны для Веб-приложений.

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

Привожу информацию со страницы https://pythonpip.ru/osnovy/luchshie-freymvorki-python :

Популярные фреймворки Python – какой выбрать

Опубликовано 01.12.2021

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

Лучшие фреймворки Python

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

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

Мы обсудим следующие фреймворки Python:

  1. Bottle
  2. CherryPy
  3. AIOHTTP
  4. Dash
  5. Falcon
  6. Flask
  7. Giotto
  8. Django
  9. Growler
  10. Uvloop
  11. Sanic
  12. MorePath
  13. Picnic
  14. Pylons
  15. Pyramid
  16. TurboGears
  17. Web2py
  18. Hug
  19. CubicWeb

Прежде чем подробно объяснять каждый фреймворк, давайте кратко представим различные типы фреймворков Python.

Типы фреймворков Python

Существуют следующие три основных типа.

1. Фреймворк Full-Stack

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

2. Микро-фреймворк

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

3. Фреймворки асинхронной структуры

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

Лучшие фреймворки Python

1. Bottle

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

Bottle не требует других зависимостей для создания небольших веб-приложений. Он позволяет разработчику работать в тесном контакте с оборудованием и является наиболее подходящей средой для создания небольших приложений и упрощенных приложений для личного пользования.

Ключевые особенности Bottle:

Это встроенный HTTP-сервер.
Поставляется с поддержкой плагинов для разных баз данных.
Предлагает маршрут отправки запроса.
Мы можем получить доступ к стороннему шаблонизатору и серверам WSGI / HTTP.

2. CherryPy

CherryPy

CherryPy – это объектно-ориентированная микросхема с открытым исходным кодом. Он следует минималистичному подходу. Это один из старейших фреймворков Python, представленных в 2002 году. Для работы cherryPy нам не нужно устанавливать сервер apache. Этот фреймворк позволяет нам использовать любую технологию для доступа к данным, используя шаблоны в Cetera.

Ключевые особенности CherryPy:

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

3. AIOHTTP

AIOHTTP

Это асинхронный фреймворк, который сильно зависит от функций Python 3.5+, таких как async & await. Библиотека Python asyncio играет жизненно важную роль в функционировании этого фреймворка. AIOHTTP, являясь серверной веб-структурой, также может служить клиентской структурой. Мы можем перенаправить запросы, используя объект запроса и маршрутизатор.

Ключевые особенности AIOHTTP:

Имеет подключаемую маршрутизацию.
Даёт возможность эффективно построить вид.
Сигналы.
Поддерживает как серверные WebSockets, так и клиентские WebSockets, без необходимости обратного вызова.
Поддерживает промежуточное программное обеспечение.

4. Dash

Dash

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

Приложение Dash также может запускать веб-сервер, такой как Flask, и связываться с пакетами JSON через HTTP-запросы.

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

Ключевые особенности Dash:

Имеется обширная поддержка плагинов.
Работает с процедурой URL(сервер разработки Dash).
Поддерживает высокую степень настройки.
Может эффективно обрабатывать ошибки.
Интеграция LDAP(сервер разработки Dash).
Для создания приложений Dash требуется меньше кода.

5. Falcon

Falcon

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

Falcon широко используется в таких крупных организациях, как LinkedIn, OpenStack и RackSpace. Он может обрабатывать больше запросов на одном и том же оборудовании, чем все его современники. Эта структура ориентирована на 100% покрытие кода.

Ключевые особенности Falcon:

Предварительная обработка исключений.
Может обеспечить дополнительную скорость с поддержкой Cython.
Имеет сильно оптимизированную базу кода, а также расширяемый.
Модульное тестирование с помощью помощника WSGI и макетов.
Его классы запросов и ответов обеспечивают легкий доступ к заголовкам и объектам.
Собственные ответы на ошибки HTTP.

6. Flask

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

Django – это полнофункциональный Python-фреймворк. Самый известный и любимый фреймворк для разработки полнофункциональных веб-приложений. С течением времени набирает еще большую популярность. В 2021 году  стал одним из 10 лучших фреймворков для веб-разработки. Он основан на принципе DRY(Don’tRepeat Yourself).

Django предлагает несколько встроенных библиотек и отличные функции, которые доступны для бесплатного использования. Django использует ORM для сопоставления объектов с таблицами базы данных.

Предлагает поддержку баз данных, а также обеспечивает легкость перехода из одной базы данных в другую. Однако ему присуща поддержка баз данных MySQL, PostgreSQL, SQLite и Oracle. Мы также можем использовать другую базу данных, используя сторонние драйверы.

Ключевые особенности Django:

Намного безопаснее по сравнению с другими веб-фреймворками.
URL-маршрутизация.
Шаблонизатор.
Миграция схемы базы данных.
Поддержка аутентификации.
Он имеет ORM (модель объектных отношений).
Множество готовых к использованию библиотек.

9. Growler

Growler

Это асинхронная структура, построенная на asyncio; он основан на фреймворках Node JS и Express / Connect. В этой структуре запрос не обрабатывается самой структурой, но обрабатывается с помощью технологии промежуточного программного обеспечения. Это наиболее подходящий фреймворк для более простой реализации сложных приложений.

Ключевые особенности Growler:

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

10. Uvloop

Он задуман как один из сверхбыстрых веб-фреймворков Python, доступных среди остальных фреймворков, и мы не можем игнорировать этот факт. Считается заменой цикла событий asyncio; следовательно, его можно использовать либо в приложении на основе asyncio, либо для замены asyncio в существующем приложении. Некоторые разработчики утверждают, что Uvloop в два раза быстрее, чем Node JS, events и любой асинхронный фреймворк Python.

Ключевые особенности Uvloop:

быстрая скорость освещения;
замена цикла событий asyncio.

11. Sanic

Sanic

Sanic – это веб-фреймворк, построенный на  uvloop. Он предоставляет одну из лучших функций, то есть предлагает быстрые HTTP-ответы через асинхронную обработку запросов. Он предоставляет неблокирующие возможности, повышающие скорость. Более того, он поддерживает обработку запросов и сравнивает их с функциями await / async Python 3.5.

Ключевые особенности Sanic:

Представления на основе классов.
Подключаемая опора.
Возможность чтения и записи файлов cookie.
Позволяет вести различные типы журналов, например журналы ошибок и журналы доступа.
Наличие обработчиков с удобной поддержкой декораторов.

12. MorePath

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

Фреймворк Pylons – это полнофункциональный фреймворк с открытым исходным кодом, предназначенный для быстрой разработки приложений. Этот фреймворк включает в себя одни из лучших элементов и свойств Perl, Python и Ruby.

Он доступен в режиме обслуживания, и многие разработчики используют фреймворк Pylons, поскольку он обеспечивает очень гибкую структуру веб-разработки. Он способствует повторному использованию и использует WSGI (интерфейс шлюза веб-сервера).

Ключевые особенности Pylons:

Маршруты.
Отправляет URL-адреса.
Сопоставление URL-адресов на основе конфигурации маршрутов через WebHelpers.
Обеспечивает проверку и создание HTML-форм.

15. Pyramid

Pyramid

Pyramid – это полнофункциональный веб-фреймворк с открытым исходным кодом, который призван максимально снизить сложность. Одним из лучших преимуществ Pyramid является то, что он может одинаково хорошо работать как с небольшими, так и с крупномасштабными приложениями. Pyramid регулярно обновляется разработчиками и работает на Python 3. Текущая версия Pyramids – 1.10, и это десятое обновление с 2010 года.

Ключевые особенности Pyramid:

Генерация URL.
Одно-файловые приложения.
Имеет гибкую аутентификацию и авторизацию.
Просмотр предикатов и множество представлений для каждого маршрута.
Рендеры.
Предикаты.
Шаблоны и спецификация активов.
Декораторы функций.

16. TurboGears

TurboGears

TurboGears – это полнофункциональная среда Python для веб-приложений с открытым исходным кодом, управляемых данными. Позволяет разработчикам быстро разрабатывать веб-приложения. TurboGears поставляется с понятным шаблоном и поддерживает гибкую и мощную ORM. Эта структура использует такие компоненты, как Genshi, Repoze, SQLAlchemy и webOp, для быстрой разработки приложений, требующих подключения к базе данных.

Ключевые особенности TurboGears:

Все возможности TurboGears реализованы как декораторы функций.
Доступные инструменты командной строки.
Поддержка нескольких баз данных.
Архитектура в стиле MVC.
Использует пилоны в качестве веб-сервера.
Шаблоны PasteScript.
Поддержка проверки с помощью Form Encode.

17. Web2Py

Web2Py

Фреймворк Web2Py – это масштабируемый фреймворк Python с открытым исходным кодом, который позволяет пользователям быстро и плавно разрабатывать веб-приложения. Он не зависит от платформы, что означает, что он поддерживает все популярные операционные системы. Кроме того, эта структура предоставляет возможность упростить процесс разработки веб-приложений с помощью веб-интерфейса, веб-сервера и базы данных SQL.

Ключевые особенности web2py:

Единый API.
Следуйте шаблону MVC.
Ролевой контроль доступа.
Нет требований к установке и настройке.
Обеспечивает поддержку интернационализации.
Обратная совместимость.
Читаемость нескольких протоколов.
Может работать на любой платформе веб-хостинга, которая предлагает поддержку Python или Java и Python.

18. Hug

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 на странице сайта?» Запрос в Яндексе не дал чёткого ответа!

!…

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Веб-фреймворки PythonПродолжение тут…

Deviz_5

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.