Самые популярные фреймворки python
В игровом мире доступно множество популярных игр, которые были разработаны с использованием фреймворков Python и его библиотек, например, Battlefield 2, Pirates of the Caribbean и многие другие. Большинство разработчиков используют язык Python вместо других языков программирования из-за его функциональных возможностей и надстроек. С развитием индустрии разработки игр программирование на Python стало исключительным выбором разработчиков для быстрого прототипирования видеоигр.
В этой статье мы обсудим 10 лучших фреймворков Python, которые используются для разработки игр:
- Pygame
- PyKyra
- Pyglet
- PyOpenGL
- Kivy
- Panda3D
- Python – Ogre
- Ren’Py
- Cocos2d
- Soya3D
6. Panda3D
Panda 3d – это фреймворк на языке Python, написанный на Python и C ++. Это бесплатный движок с открытым исходным кодом, используемый для разработки трехмерных игр в реальном времени, моделирования, визуализации экспериментов и многого другого. Эта структура имеет инструменты командной строки для оптимизации и обработки исходного кода.
9. Growler
Это асинхронная структура, построенная на asyncio; он основан на фреймворках Node JS и Express / Connect. В этой структуре запрос не обрабатывается самой структурой, но обрабатывается с помощью технологии промежуточного программного обеспечения. Это наиболее подходящий фреймворк для более простой реализации сложных приложений.
Ключевые особенности Growler:
- Поддержка множества пакетов с открытым исходным кодом.
- Используется декоратор для написания чистого многоразового кода.
- Использует декораторы, чтобы уменьшить сложность кода, и мы можем писать повторно используемый код.
- Есть модуль ziapp, который позволяет заархивировать все приложение в один исполняемый файл.
3. Pyglet
Pyglet – это мощная библиотека Python, которая представляет собой кроссплатформенный оконный и мультимедийный фреймворк с открытым исходным кодом. Используется для разработки игр и многих других визуально насыщенных приложений и программного обеспечения в операционных системах Windows, Linux и Mac OS X.
Pyglet – это библиотека языка Python, которая поддерживает пользовательский интерфейс, используемый для обработки событий, графики OpenGL, джойстиков, загрузки видео и изображений, работы с окнами, воспроизведения звуков и музыки. Библиотека Pyglet работает только под управлением Python 3.5 или более поздней версии Python. Она также работает с другими интерпретаторами Python, такими как Pypy.
Pyglet позволяет использовать его как для проектов с открытым исходным кодом, так и для коммерческих проектов и разработок с небольшими ограничениями.
Особенности библиотеки Pyglet:
- Имеет портативное собственное оконное управление.
- Эта библиотека также имеет встроенную поддержку изображений и аудио.
- Библиотека Pyglet не требует никаких требований к установке, а также не имеет внешних зависимостей.
Среднее время запроса (мс)
Снова неприятно удивляет Tornado, на который мы изначально делали ставку. Впечатляет Flask, который по среднему времени запроса конкурирует с потенциальными лидерами.
5. Falcon
Falcon широко используется в таких крупных организациях, как LinkedIn, OpenStack и RackSpace. Он может обрабатывать больше запросов на одном и том же оборудовании, чем все его современники. Эта структура ориентирована на 100% покрытие кода.
Ключевые особенности Falcon:
18. Hug
Эта микрофреймворк используется для разработки и создания веб-API. Он потребляет ресурсы, когда это необходимо, и использует Cython для компиляции, и этот фреймворк позволяет нам очень легко и быстро завершить разработку приложения.
Ключевые особенности Hug:
- Поддержка автоматической документации.
- Встроенное управление версиями.
- Следует принципу «после реализации можно использовать где угодно».
1. Bottle
Это микрофреймворк, который создает единый источник файла для каждого разрабатываемого приложения, использующего его. Этот фреймворк в первую очередь ориентирован на разработку API-интерфейсов и является одним из лучших веб-фреймворков Python. Bottle не требует других зависимостей для создания небольших веб-приложений. Он позволяет разработчику работать в тесном контакте с оборудованием и является наиболее подходящей средой для создания небольших приложений и упрощенных приложений для личного пользования.
Ключевые особенности Bottle:
Django
Версия: 2.1.4
Описание: самый популярный комбайн для Python, который из коробки решает множество проблем (админка, авторизация, логирование, ORM, и т.д). Это упрощает жизнь разработчика, но если мы ставим в приоритет скорость работы — то иногда такой комбайн играет против нас и это сказывается на производительности. По этой причине номинацию Fastest Python Web Framework in 2019 он скорее всего не возьмет.
4. Dash
Это микро-фреймворк на основе Python, который используется для разработки аналитических веб-приложений и популярен среди специалистов по данным. Он подходит для тех специалистов по данным, которые мало разбираются в механике веб-разработки.
ReactJS используется для рендеринга интерфейса. Мы можем расширить возможности Dash с помощью плагинов Flask. Приложения, разработанные с использованием Dash, отображаются в веб-браузере и могут быть развернуты на сервере. Эти приложения кроссплатформенны и готовы к работе с мобильными устройствами.
Ключевые особенности Dash:
- Имеется обширная поддержка плагинов.
- Работает с процедурой URL(сервер разработки Dash).
- Поддерживает высокую степень настройки.
- Может эффективно обрабатывать ошибки.
- Интеграция LDAP(сервер разработки Dash).
- Для создания приложений Dash требуется меньше кода.
2. PyKyra
Самый быстрый фреймворк языка Python – PyKyra, который используется для разработки игр. Фреймворк PyKyra основан на программной и документальной локализации(SDL) и движке kyra. Помимо таких стандартных функций, эта структура языка Python также поддерживает видео и звуки MPEG, такие как MP3, WAV, Ogg Vorbis, прямое чтение изображений и многое другое.
- Фреймворк Pykyra разработан для поддержки боковых симметричных переводов и переводов сверху вниз.
- В Pykyra пользователь может разделить экран на представления подокна, и каждое представление подокна имеет собственное преобразование объекта.
- Движок Kyra быстр и обладает специальными кодированными алгоритмами, используемыми для рендеринга обновлений.
- Этот фреймворк включает хорошо продвинутые инструменты, такие как редактор спрайтов и кодировщик.
- Движок kyra также поддерживает объединение альфа-значений и преобразование цвета.
- Все объекты в этой структуре встроены в регулируемую иерархию.
- Pykyra также имеет функцию, с помощью которой сложные объекты можно указывать вверх и вниз всякий раз, когда они нарисованы или сопоставлены в предварительно кэшированной форме.
Full-stack фреймворки
Django — свободный open-source full-stack фреймворк. Он позволяет добавить большинство стандартных функций единым пакетом вместо поиска отдельных библиотек.
Среди них — такие востребованные, как аутентификация, URL-маршрутизация, миграция схемы данных и т.п.
Django использует ORM для сопоставления объектов с таблицами баз данных. Один и тот же код работает с разными базами данных, так что переход из одной БД в другую становится простой задачей. Основными базами, с которыми работает Django, являются PostgreSQL, MySQL, SQLite и Oracle. Можно добавить и другие, но для этого понадобятся решения сторонних разработчиков.
Pyramid — open-source фреймворк, который дает максимум возможностей разработчику с минимальными затратами времени и ресурсов.
Наиболее интересная возможность фреймворка — работа как с большими, так и с малыми приложениями. Отдельно стоит выделить такие функции Pyramid, как:
- однофайловые приложения;
- генерация URL;
- масштабируемая конфигурация;
- гибкая схема аутентификации и авторизации;
- доступная пониманию техническая документация.
TurboGears — open-source full-stack фреймворк для веб-приложений. Он позволяет разработчику быстро создавать расширяемые веб-приложения, управляемые данными. TurboGears поставляется с удобными шаблонами и мощным и гибким ORM.
Наиболее важные функции фреймворка:
- поддержка различных баз данных;
- поддержка SQLObject и SQLAlchemy;
- валидация для FormEncode;
- Pylons как веб-сервер;
- инструменты командной строки.
А это — масштабируемый open-source full-stack фреймворк для Python. Но прежде чем начать с ним работать, стоит запомнить, что с Python 3 он несовместим.
Зато Web2py поставляется с собственным IDEwhich: в нем есть редактор кода, дебаггер и деплой в один клик. Среди прочих функций и инструментов стоит выделить следующие:
- отсутствие необходимости в установке и настройке;
- работа в среде Windows, Mac, Google App Engine, Amazon EC2 и на любом хостинге, который поддерживает Python 2.5–2.7 или Java+Python;
- работа с различными протоколами;
- высокий уровень безопасности данных;
- трекер ошибок;
- обратная совместимость, которая позволяет без труда работать с приложениями и сервисами на основе прежних версий фреймворка.
Финальные результаты
11. Sanic
Ключевые особенности Sanic:
- Представления на основе классов.
- Подключаемая опора.
- Возможность чтения и записи файлов cookie.
- Позволяет вести различные типы журналов, например журналы ошибок и журналы доступа.
- Наличие обработчиков с удобной поддержкой декораторов.
Заключение
В этом руководстве мы упомянули все основные фреймворки Python, которые относятся к различным категориям. Разработчик может выбрать любой в соответствии с требованиями проекта.
От переводчика: сегодня мы предлагаем вам перевод статьи, размещенной на Hackernoon компанией SteelKiwi. Она занимается разработкой программных решений b2b и b2c, а опытом, накопленным в процессе работы, делится с читателями своего блога.
Фреймворки облегчают жизнь разработчику, предлагая различные решения для разработки приложений и сервисов. Они автоматизируют внедрение стандартных решений, позволяя сэкономить время. Таким образом, разработчик фокусируется на приложении, а не на рутинных задачах, где не нужно творческое мышление.
Skillbox рекомендует: Практический курс «Python-разработчик с нуля».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
В этой статье рассказывается о десяти фреймворках Python, которые будут полезны как для начинающих разработчиков, так и для профессионалов. В 2018 году старые фреймворки обновились, появились и новые инструменты, на которые стоит обратить внимание.
7. Giotto
Это полнофункциональная платформа, основанная на Model View Controller(MVC). Giotto – это платформа приложения, которая разделяет элементы модели, представления и контроллера по порядку. Он обеспечивает некоторые важные характеристики, такие как автоматическая маршрутизация URL-адресов и Jinja2 для шаблонов HTML с API и доступным интерфейсом RESTful.
Поставляется с модулем контроллера, который предлагает разработчикам платформу для создания приложений с использованием командной строки и диаграмм Internet Relay(IRC).
Ключевые особенности Giotto:
- Имеет возможность автоматической маршрутизации URL-адресов.
- Функциональные шаблоны.
- Есть несколько подключаемых контроллеров.
- Общая модель и виды.
- Доступность Jinja2 для HTML-шаблонов.
- Чрезвычайно лаконичный код.
- Поддержка баз данных с помощью SQLAlchemy.
Передача данных в секунду (Кб)
По количеству переданных данных в секунду Django сильно отстает.
10. Uvloop
Он задуман как один из сверхбыстрых веб-фреймворков Python, доступных среди остальных фреймворков, и мы не можем игнорировать этот факт. Считается заменой цикла событий asyncio; следовательно, его можно использовать либо в приложении на основе asyncio, либо для замены asyncio в существующем приложении. Некоторые разработчики утверждают, что Uvloop в два раза быстрее, чем Node JS, events и любой асинхронный фреймворк Python.
Ключевые особенности Uvloop:
- быстрая скорость освещения;
- замена цикла событий asyncio.
1. Pygame
PyGame – это библиотека с открытым исходным кодом, которая используется для создания игр на Python, разработанных с использованием исключительной библиотеки SDL. Эта библиотека есть на языках C, Python, Native и OpenGL.
Pygame позволяет пользователю создавать полнофункциональные игры и мультимедийные программы. Библиотека очень портативна и может работать в любой операционной системе и на любой платформе.
Особенности библиотеки pygame для python:
- В библиотеку легко входят многоядерные процессоры.
- Используются оптимизированные коды C и Assemble для основных функций.
- Pygame очень проста и портативна.
- Может работать очень мало строк кода.
13. Picnic
Это объектно-ориентированный микрофреймворк, используемый для разработки API-интерфейсов на основе JSON. Этот фреймворк оптимизирован для API на основе JSON, который может удерживать позицию среди лучших фреймворков Python, поскольку он создает самые быстрые веб-API.
Ключевые особенности Picnic:
- Поддерживает файлы cookie.
- Обработка маршрутизации.
- Имеет встроенную обработку ошибок.
- Способен обрабатывать запросы на основе JSON.
Заключение
В наши дни игры стали активной частью повседневной жизни, и достижения в игровом мире побудили разработчиков создавать высококачественные впечатляющие игры. В этой статье мы обсудили 10 основных фреймворков Python, которые можно использовать для разработки игр, и их конкретные функции, которые полезны для разработки определенных функций и используются в видеоиграх.
В 2018 году Python укрепил свои позиции популярности среди программистов и вошел в Top 3 самых популярных языков на github. Все больше и больше людей переходит на светлую сторону…то есть Python. Появилось еще большее количество разработчиков, которые интересуются данным языком и ведут разработку своих проектов с его помощью. Одним из популярных направлений для Python является web-разработка. Хочется, чтобы не только процесс разработки был удобным и быстрым, но и сами проекты могли похвастаться скоростью и стабильностью работы.
Python имеет множество фреймворков, которые избавляют программиста от рутинных операций и позволяют сосредоточиться на решении задач. В 2018 году обновились существующие фреймворки и появились новые инструменты.
Поэтому мы решили составить сравнительный анализ популярных фреймворков, которые не потеряют, мы надеемся, своей актуальности на протяжении всего 2019 года и определить самый быстрый из них.
2. CherryPy
CherryPy – это объектно-ориентированная микросхема с открытым исходным кодом. Он следует минималистичному подходу. Это один из старейших фреймворков Python, представленных в 2002 году. Для работы cherryPy нам не нужно устанавливать сервер apache. Этот фреймворк позволяет нам использовать любую технологию для доступа к данным, используя шаблоны в Cetera.
Ключевые особенности CherryPy:
- Имеет подключаемую маршрутизацию.
- Дает возможность эффективно построить вид.
- Сигналы.
- Поддерживает как серверные WebSockets, так и клиентские WebSockets, без необходимости обратного вызова.
- Поддерживает промежуточное программное обеспечение.
Flask
Версия: 1.0.2
Описание: самый популярный фреймворк на Python (по звездам в GitHub обгоняет даже Django). Популярный выбор в случаях разработки мелких проектов, для которых не нужны те плюшки, которые есть в Django. Позволяет быстро развернуть приложение. Возможно быстрее чем Django по скорости работы, но имеет очень маленькую функциональность “из коробки”.
Версия: 3.5.1
Описание: очень привлекательный асинхронный Python Framework. Имеет версию клиента и сервера, что значительно развязывает руки при разработке. Обладает очень удобными асинхронными запросами с версии клиента, а также очень хорошие показатели скорости работы сервера при большом количество запросов. Точно должен попасть в тройку лидеров.
9. Cocos2d
Cocos 2D – это среда Python, которая используется для разработки игр, приложений, программного обеспечения и многих других интерактивных программ, основанных на кроссплатформенном графическом интерфейсе пользователя(GUI). Этот фреймворк основан на программном обеспечении с открытым исходным кодом.
Cocos 2d – это большое семейство, которое включает Cococs2D – x, Cocos2D – XNA и Ccos2D – JS. Этот фреймворк написан на языке программирования C ++. Он имеет тонкий слой зависимости от платформы, который можно использовать для создания игр, приложений и программного обеспечения. Cococs2D – JS – это версия движка на JavaScript, которая поддерживает полную функциональность Cocos2D – x, включая набор упрощенных API.
Итоги
Sanic: популярность фреймворка идет впереди его производительности. Чуда не случилось и обогнать лидера не вышло. В совокупности с тредом на Reddit о проблемах c безопасностью — мы бы не стали использовать Sanic прямо сейчас и подождали действий от разработчиков.
Tornado: “разочарование года”. В связи с результатами — не думаем, что Tornado стоит выбирать для реализации каких-либо новых проектов. Надеемся разработчики что-нибудь придумают и исправят ситуацию.
Django показал ожидаемый результат. Мы любим Django за его возможности и избавление нас от рутины, а не за скорость работы. Обширное community, большое количество материалов в Сети, большое количество реализованных проектов в открытом доступе — все это делает его привлекательным для новичков. Если бы у нас стояла задача быстро разработать MVP типичного web-сервиса — мы бы выбрали в 2019 именно его.
Flask тоже показал ожидаемый результат. Обошел Django за счет того, что имеет не такой богатый функционал из коробки. Не дотянул до скорости асинхронных фреймворков. Мы бы выбрали его в 2019 для реализации небольших pet-проектов или тогда, когда уже важна скорость, но разбираться с асинхронными фреймворками желания еще нет.
Все исходные файлы бенчмарков вы можете посмотреть в репозитории Python Frameworks Benchmark.
В этом руководстве мы обсудим лучшие из различных важных веб-фреймворков Python и их основные функции. Как мы знаем, Python – это очень востребованный и эффективный язык программирования, который содержит обширные библиотеки и фреймворки практически для каждой технической области.
Фреймворки упрощают разработку приложений (или программного обеспечения) для разработчиков. Они предлагают автоматическое выполнение сложных задач, сокращают время разработки и в значительной степени сосредоточены на логике приложения, а не на общем элементе.
Python поставляется с множеством фреймворков, и у каждого есть свои преимущества и недостатки. Все, что нам нужно – проанализировать требования к нашему проекту, чтобы выбрать подходящий.
Мы обсудим следующие фреймворки Python:
Прежде чем подробно объяснять каждый фреймворк, давайте кратко представим различные типы фреймворков Python.
Микрофреймворки
Это микрофреймворк, который предоставляется по лицензии BSD. Его разработчики вдохновлялись фреймворком Sinatra Ruby. Он зависит от инструментария Werkzeug WSGI и шаблона Jinja2.
У Flask модульный дизайн, который позволяет адаптировать его для выполнения многих задач. «Из коробки» разработчик получает следующие функции:
- встроенный сервер и дебаггер;
- шаблоны Jinja2;
- поддержка безопасных кукис;
- WSGI 1.0;
- Unicode;
- возможность подключения к любой ORM.
Еще один микрофреймворк, который изначально предназначался для создания API. Bottle отличает наличие единственного source-файла. Работа с ним не требует «танцев с бубном».
Его функции по умолчанию включают в себя маршрутизацию, шаблоны, утилиты и базовую абстракцию по стандарту WSGI:
CherryPy — минималистичный веб-фреймворк с открытым исходным кодом. Он обеспечивает возможность создания веб-приложений Python, которое ничем не отличается от построения любой другой объектно-ориентированной программы.
CherryPy позволяет использовать любой тип технологии для шаблонизации, доступа к данным и т.д. Он также может обрабатывать статьи, статику, куки, загружать файлы и все остальное, что умеют другие фреймворки.
Его отличительные способности:
7. Python-Ogre
Python – Orge – это фреймворк, используемый для разработки игр, также известный как PyOrge. Он написан на языке C ++, связывающем библиотеку Python для движка Orge 3d. Этот фреймворк является кроссплатформенным, отличается гибкостью и быстротой. Он поддерживает замечательный набор функций, который использовался для разработки увлекательных игр.
Фреймворк PyOrge фактически состоит из двух библиотек, называемых Orge3D и CEGUi. Orge3s – это движок 3D-рендеринга, а CEGUi – это система встроенного графического пользовательского интерфейса(GUI).
Orge применяется для разработки сцен и создания всей графики, которую пользователь хочет импортировать в игру. Фреймворк PyOrge используется для версий, разработанных до версии Orge v1.05. После этого доступно множество других модулей.
Программное обеспечение Orge также содержит скрипты Python для импорта данных из Blender в Orge. Эта структура упрощает для пользователя создание ресурсов в Blender для своей игры и может импортировать данные в Orge. В этой структуре также доступны другие формы экспортеров.
Типы фреймворков Python
Существуют следующие три основных типа.
1. Фреймворк Full-Stack
Эти фреймворки соответствуют всем требованиям веб-разработки, таким как генераторы форм, проверка форм и макеты шаблонов. Это основные функции типичной полнофункциональной платформы.
Микро-фреймворки требуют большого количества кода и дополнительных требований, вносимых вручную. Этот вид фреймворка не предоставляет возможности уровня абстракции данных, проверки формы и конкретных инструментов и библиотек.
3. Фреймворки асинхронной структуры
В последнее время набирают популярность асинхронные фреймворки, позволяющие обрабатывать большой набор одновременных подключений. Они использует библиотеку asyncio для одновременного запуска процесса.
6. Flask
Flask – еще одна популярная микро-инфраструктура Python, которая распространяется под лицензией BSD. Фреймворк Sinatra Ruby вдохновляет на это. Для этого фреймворка требуются шаблоны Jinja2 и инструментарий Werzeug WSGI.
Он легкий и имеет модульную конструкцию. Flask легко адаптируется.
Используя Flask, разработчики могут создать прочную основу веб-приложения, на которой можно будет использовать любое необходимое расширение. Он также совместим с Google App Engine.
Ключевые особенности Flask:
12. MorePath
MorePath предоставляет важную функцию: автоматически преобразует определенные пути в платформе в ссылки для создания приложений с наиболее чистыми URL-адресами.
Ключевые особенности Morepath:
- Он предоставляет простые, гибкие и надежные разрешения.
- Позволяет создавать общий пользовательский интерфейс так же просто, как выделить подклассы.
- Все представления являются общими, повторно используются.
- Предлагает все необходимые инструменты для разработки веб-сервисов RESTful.
- Можно расширять с помощью простого, связного и универсального механизма расширения и отмены.
5. Kivy
Библиотека Kivy разработана с использованием новых пользовательских интерфейсов, например, приложений с поддержкой мультитач. Библиотека Kivy используется для быстрой разработки приложений и программного обеспечения.
Эта платформа работает на Windows, Android, Raspberry Pi, Linux, OS X и iOS. Естественно, она может использовать множество входов, устройств и протоколов, таких как Mac OS X Trackpad и Magic Mouse, Mtdev, WM_Touch, WM_Pen, ядро Linux HID и TUIO. Библиотека Kivy – это ускоренный графический процессор(GPU). Имеет более 20 виджетов, которые можно легко расширять.
Библиотека Kivy бесплатна для использования по лицензии MIT, начиная с версии 1.7.2, и LGPL 3 для предыдущих версий. Инструментарий этой библиотеки официально разработан, и пользователи могут использовать его в рыночном продукте.
Эта структура очень стабильна в использовании и имеет полностью документированный API, а также руководство по программированию, которое поможет пользователям начать ее использовать.
15. Pyramid
Pyramid – это полнофункциональный веб-фреймворк с открытым исходным кодом, который призван максимально снизить сложность. Одним из лучших преимуществ Pyramid является то, что он может одинаково хорошо работать как с небольшими, так и с крупномасштабными приложениями. Pyramid регулярно обновляется разработчиками и работает на Python 3. Текущая версия Pyramids – 1.10, и это десятое обновление с 2010 года.
Ключевые особенности Pyramid:
- Генерация URL.
- Однофайловые приложения.
- Имеет гибкую аутентификацию и авторизацию.
- Просмотр предикатов и множество представлений для каждого маршрута.
- Рендеры.
- Предикаты.
- Шаблоны и спецификация активов.
- Декораторы функций.
Запросов в секунду
8. Django
Django – это полнофункциональный Python-фреймворк. Самый известный и любимый фреймворк для разработки полнофункциональных веб-приложений. С течением времени набирает еще большую популярность. В 2021 году стал одним из 10 лучших фреймворков для веб-разработки. Он основан на принципе DRY(Don’tRepeat Yourself).
Django предлагает несколько встроенных библиотек и отличные функции, которые доступны для бесплатного использования. Django использует ORM для сопоставления объектов с таблицами базы данных.
Предлагает поддержку баз данных, а также обеспечивает легкость перехода из одной базы данных в другую. Однако ему присуща поддержка баз данных MySQL, PostgreSQL, SQLite и Oracle. Мы также можем использовать другую базу данных, используя сторонние драйверы.
Ключевые особенности Django:
- Намного безопаснее по сравнению с другими веб-фреймворками.
- URL-маршрутизация.
- Шаблонизатор.
- Миграция схемы базы данных.
- Поддержка аутентификации.
- Он имеет ORM (модель объектных отношений).
- Множество готовых к использованию библиотек.
Бонус
Dash — фреймворк Python с открытым исходным кодом, используемый для создания аналитических веб-приложений. Он особенно хорош для специалистов по большим данным, которые не очень хорошо знакомы с веб-разработкой.
Приложения, разработанные с помощью Dash, отображаются в веб-браузере и могут быть развернуты на серверах. Приложения Dash являются по своей сути кроссплатформенными.
В качестве вывода можно сказать, что фреймворков разработчикам предлагается действительно много. Каждый из них дает собственные уникальные возможности. Но выбор фреймворка — важное решение для будущего собственного проекта, и спешить с этим не следует.
Если вы когда-нибудь думали: «С какого же языка программирования мне следует начать свое путешествие в тестирование?» Ваш ответ – Python. Но он подойдет не только начинающим! В недавнем опросе, который я провела в LinkedIn, мы видим, что среди опытных программистов 35% проголосовали за то, что Python является их самым любимым языком программирования (немного опередив всеми любимую Java, которая заняла 2-е место с 32%).
На протяжении многих лет Python действительно набирает обороты как среди тестировщиков, так и среди разработчиков, да и в целом является самым динамично развивающимся языком программирования (как видно на диаграмме трендов Stack Overflow), и мы прекрасно понимаем, что это значит. Популярность = релевантность!
К концу этой статьи я ставлю своей целью дать вам понимание того, насколько мощным является язык программирования Python и какой фреймворк для тестирования лучше всего подойдет вашему проекту исходя из его потребностей.
17. Web2Py
Фреймворк Web2Py – это масштабируемый фреймворк Python с открытым исходным кодом, который позволяет пользователям быстро и плавно разрабатывать веб-приложения. Он не зависит от платформы, что означает, что он поддерживает все популярные операционные системы. Кроме того, эта структура предоставляет возможность упростить процесс разработки веб-приложений с помощью веб-интерфейса, веб-сервера и базы данных SQL.
Ключевые особенности web2py:
- Единый API.
- Следуйте шаблону MVC.
- Ролевой контроль доступа.
- Нет требований к установке и настройке.
- Обеспечивает поддержку интернационализации.
- Обратная совместимость.
- Читаемость нескольких протоколов.
- Может работать на любой платформе веб-хостинга, которая предлагает поддержку Python или Java и Python.
Методика тестирования
Тестирование проводилось на Apple iMac 27'' Retina 5K 2017, CPU: 3.5GHz i5, RAM: 8GB, 1000GB Fusion Drive, OSX 10.14.2 при помощи утилиты WRK:
Тесты проводились на Python 3.7.2. Все фреймворки запускались при помощи Gunicorn с двумя воркерами. Возможно в каких-то случаях использование uwsgi сказалось бы на результатах, но так как мы поставили цель тестировать фреймворки, а не способы их запуска — решили этим пренебречь.
У нас был всего один вид тестов: DB Test, в котором мы получаем строковые данные из базы данных и возвращаем их в виде html-ответа (1 запись в 79 bytes). В качестве базы данных использовался Postgres 11. В качестве драйвера обращений к базе использовался psycopg2 в случае синхронных фреймворков и asyncpg в случае асинхронных.
В качестве event loop библиотеки для асинхронных фреймворков решили использовать uvloop.
14. Pylons
Фреймворк Pylons – это полнофункциональный фреймворк с открытым исходным кодом, предназначенный для быстрой разработки приложений. Этот фреймворк включает в себя одни из лучших элементов и свойств Perl, Python и Ruby.
Он доступен в режиме обслуживания, и многие разработчики используют фреймворк Pylons, поскольку он обеспечивает очень гибкую структуру веб-разработки. Он способствует повторному использованию и использует WSGI (интерфейс шлюза веб-сервера).
Ключевые особенности Pylons:
- Маршруты.
- Отправляет URL-адреса.
- Сопоставление URL-адресов на основе конфигурации маршрутов через WebHelpers.
- Обеспечивает проверку и создание HTML-форм.
Прежде чем начать…
Когда вы начинаете выбирать фреймворк, оцените размер и сложность своего проекта. Если то, что вы разрабатываете, представляет собой большую систему с изрядным количеством функций, то full-stack фреймворк — то, что вам нужно. Если же вы создаете относительно небольшое приложение или сервис, тогда стоит обратить внимание на микрофреймворки.
Информация о некоторых фреймворках изложена на страницах «Википедии». Финальное решение, однако, вы должны принимать сами на основе уже озвученных выше принципов анализа собственного сервиса или приложения.
Что хорошего в Python для автоматизации тестирования?
Python - это язык программирования с открытым исходным кодом, который увидел свет в 1991 году, чтобы явить миру интуитивно понятный, простой, удобочитаемый, элегантный и наименее нагроможденный язык программирования. И когда дело доходит до тестирования, такие качества необходимы, особенно когда в команде есть ручные тестировщики (которые не обязательно владеют навыками программирования), но сейчас переходят к автоматизации и могут радоваться быстрой кривой обучения Python для оперативного написания скриптов.
Есть довольно много причин, по которым популярность Python растет в области автоматизации тестирования и версий, почему он считается лучшим вариантом для нее. Среди них вы найдете: Дзен Python (19 основополагающих принципов философии проектирования на Python), удобство для начинающих, но мощность для профессионалов; Python – одновременно объектно-ориентированный и функциональный, у него есть большая библиотека пакетов для тестирования, серьезное сообщество по всему миру и многое другое! Я рекомендую прочитать вам чуть больше об этом в блоге AutomationPanda.
10. Soya3d
Soya 3D – это высокоуровневый фреймворк Python, используемый для разработки трехмерных видеоигр. Эта структура бесплатна для использования и находится под лицензией General Public License(GPL). Этот Framework представляет собой многоплатформенный движок разработки игр, который может работать в операционных системах Linux, Microsoft Windows и Mac OS X.
Создатель этого фреймворка описывает Soya 2D как игровой движок, полностью ориентированный на быструю разработку. Пользоваться им очень легко и просто. Основная цель этого фреймворка – дать возможность пользователям-любителям разрабатывать сложные трехмерные игры полностью на языке программирования Python.
Асинхронные фреймворки
Он работает на Python 3.5+. Sanic поддерживает асинхронные обработчики запросов, что делает его совместимым с функциями async / wait Python 3.5. Это значительно повышает скорость работы.
В бенчмарке при обработке 100 соединений Sanic показал способность обрабатывать 33 342 запроса в секунду.
Tornado — это веб-фреймворк Python и асинхронная сетевая библиотека одновременно. Он использует неблокирующий сетевой ввод-вывод и решает проблему C10k (это означает, что при правильной настройке он может обрабатывать 10 000+ одновременных подключений).
Все это делает его отличным инструментом для создания приложений, требующих высокой производительности и работы с десятками тысяч пользователей одновременно.
19. CubicWeb
Cubic Web – это полнофункциональный фреймворк, разработанный и курируемый Logilab, это бесплатный семантический веб-фреймворк с открытым исходным кодом, основанный на Python. Cubic Web основан на модели данных, и для разработки функционального приложения требуется, чтобы она была определена. Cubic Web использует куб, в то время как другое приложение использует отдельные представления и модели.
Ключевые особенности Cubic Web:
- Поддержка нескольких баз данных.
- Безопасность.
- Многоразовые компоненты.
- Упрощает запросы, связанные с данными, с помощью RQL.
- OWL (язык веб-онтологий).
Участники тестирования
8. Ren’Py
Ren’Py – это Python Framework, который можно использовать бесплатно и он кроссплатформенный. Этот фреймворк написан на Python и Cython. Ren’Py используется для цифрового повествования, что позволяет пользователям легко комбинировать слова, изображения и звуки, а также разрабатывать графические сюжеты и игры для воспроизведения жизни.
Поскольку движок Ren’Py поддерживает язык сценариев Python, который позволяет пользователям работать со сложной игровой логикой. Самым большим преимуществом этого фреймворка является то, что его можно использовать в любой операционной системе компьютера.
16. TurboGears
TurboGears – это полнофункциональная среда Python для веб-приложений с открытым исходным кодом, управляемых данными. Позволяет разработчикам быстро разрабатывать веб-приложения. TurboGears поставляется с понятным шаблоном и поддерживает гибкую и мощную ORM. Эта структура использует такие компоненты, как Genshi, Repoze, SQLAlchemy и webOp, для быстрой разработки приложений, требующих подключения к базе данных.
Ключевые особенности TurboGears:
- Все возможности TurboGears реализованы как декораторы функций.
- Доступные инструменты командной строки.
- Поддержка нескольких баз данных.
- Архитектура в стиле MVC.
- Использует пилоны в качестве веб-сервера.
- Шаблоны PasteScript.
- Поддержка проверки с помощью Form Encode.
Vibora
Тестируемая версия: релизов на GitHub нет
Описание: многообещающий фреймворк, появившийся в июне 2018 и за последнии полгода набравший более 4000 звезд. Имеет впечатляющие замеры производительности в GitHub. Мы думали именно Vibora станет фаворитом нашей гонки, но к сожалению из-за отсутствия возможности запуска под Python >=3.7 и отсутствия стабильной версии фреймворка мы исключили Vibora.
В GitHub разработчики обещают “кардинально новый” Vibora уже скоро. Посмотрим, что у них получится и обязательно напишем об этом.
Результаты
Лучшие фреймворки Python
Максимальное время запроса (сек)
Все “подопытные” показали практически одинаковые результаты по максимальному времени запроса. Все, как мы и ожидали.
Фреймворк для тестирования на Python, который вам подходит
С ростом применения Python растет и популярность фреймворков для тестирования на его основе. Поначалу может быть неясно, какой инструмент из всего многообразия следует выбрать, поскольку у каждого из них есть свои плюсы и минусы. Тем не менее, у каждого проекта и организации, есть свои требования и ограничения, поэтому нам нужно учитывать их все при выборе инструмента, который подойдет нам лучше всего. Чтобы лучше разобраться в этом вопросе, я рекомендую вам прочитать эти статьи:
И, конечно, зачем же нужны списки с плюсами и минусами, как ни для того, чтобы собрать важные сведения об инструментах в одном месте! Итак, давайте рассмотрим 8 лучших фреймворков для тестирования на Python и рассмотрим как их преимущества, так и недостатки, чтобы вам было проще выбрать идеальный фреймворк для тестирования.
Преимущества и недостатки 8 лучших фреймворков для тестирования на Python
Tornado
Версия: 5.1.1
Описание: асинхронный ветеран Python движения, задавший тренд асинхронности в 2010 году. Не теряет своей актуальности и получил 5ю версию в 2018 году. Достаточно высокий порог входа для новичков. Популярен среди олдскульных питонистов, и мы думаем не зря. Должен показать хорошие результаты.
4. PyOpenGL
Самая распространенная кроссплатформенная платформа Python – это PyOpenGL. Эта структура представляет собой привязку Python к OpenGL и связанным API. В среде PyOpenGL привязка была разработана с использованием стандартной библиотеки c-типов.
Это стандартизированная структура Python, которая является интероперабельной и имеет огромное количество внешних графических пользовательских интерфейсов, звуковых библиотек Python, таких как PyGame, Raw XLib, PyQt и многих других.
Sanic
Версия: 18.12
Описание: можно сказать, что это “многопоточный Flask” со всеми вытекающими. По этой причине мы думаем, что результаты должны быть очень хороши.
Читайте также: