Содержание
Лучшие фреймворки Python для веб-разработки, которые подойдут начинающим
Python — один из самых популярных и простых для изучения языков программирования и применяется почти везде, в том числе в веб-разработке. Для него есть много фреймворков, часть которых не просто облегчает разработку, но и предоставляет инструменты, позволяющие буквально за пару дней поднять готовый сайт.
Такие фреймворки относятся к категории full stack. Они крутые, в них куча инструментов и всё включено, но это может сделать их тяжёлыми, медленными и негибкими. Кроме фулстек-фреймворков есть и другие, например микро- или асинхронные фреймворки.
Подробнее о типах фреймворков
Фулстек-фреймворки. Есть всё необходимое для создания приложения — архитектура MVC (Model-View-Controller), имплементация ORM, движок шаблонов, маршрутизация и всё остальное. Такие фреймворки годятся для любых задач, но для мелких проектов можно обойтись и чем-нибудь менее громоздким.
Микрофреймворки. Включают только базовые компоненты и предназначены для быстрой разработки относительно небольших проектов. В них может не быть, например, валидации форм или интерфейса для базы данных, так что что-то придётся дописывать или подключать из сторонних библиотек. Некоторые микрофреймворки легко масштабируются по мере необходимости.
Асинхронные фреймворки. Основной принцип — задачи не обязаны исполняться последовательно: следующая может начать считаться до того, как завершилась предыдущая. Поскольку обычно передача данных пользователю и ожидание его ответа требуют гораздо больше времени, чем собственно работа сервера, такие фреймворки не тратят время на ожидание. Это позволяет им обрабатывать огромное количество соединений одновременно.
Главный плюс фулстек-фреймворков в том, что всё, нужное для полноценного приложения, в них уже есть. Не нужно искать отдельные библиотеки для каждой мелкой задачи и думать о совместимости, поэтому даже начинающие смогут быстро собрать готовое работающее приложение. В этой статье мы расскажем о таких фреймворках.
- Django
- Pyramid
- TurboGears
- Flask
- Tornado
Django
Сайт | PyPi | GitHub | Stack Overflow
Высокоуровневый фреймворк, предназначенный для быстрой и эффективной разработки. Его архитектура выстроена так, чтобы максимально экономить ваше время и силы, а в будущем — время и деньги заказчиков. Основные принципы философии Django — DRY и rapid development — стимулируют переиспользование кода и уменьшают избыточность.
Фичи
- Контроль версий для баз данных (миграции).
- Собственный движок шаблонов.
- Объектно-реляционные отображения (ORM).
- Маршрутизация URL.
- Поддержка веб-серверов.
- Поддержка аутентификации.
- Поддержка интернационализации.
Плюсы
- Масса библиотек. Базовую функциональность не нужно писать самому — многое уже написано, остаётся только импортировать соответствующие библиотеки. На качество библиотек Django обычно можно положиться.
- Сообщество и документация. У Django подробная документация и дружелюбное сообщество, поэтому всегда можно разобраться, что как работает, или спросить у специалистов.
- Масштабируемость. Если вы понятия не имеете, насколько сильно ваш проект вырастет и вырастет ли вообще (как это обычно и бывает со стартапами), Django позволяет начать с малого и масштабироваться по мере необходимости.
Минусы
- Django из коробки не поддерживает WebSockets, поэтому он плохо подходит для работы в реальном времени.
- Готовые библиотеки — это в целом хорошо, но часто они снижают гибкость.
Где используется?
- Социальная сеть для обмена фотографиями и видео.
- Spotify — музыкальная платформа, рекомендующая пользователям музыку в зависимости от их предпочтений.
Django — один из самых популярных фреймворков, многие веб-студии работают именно с ним, поэтому важно уметь его использовать, если вы собираетесь работать в сфере веб-технологий. Изучить его, а также другие необходимые веб-разработчику инструменты, можно на курсе SkillFactory.
Pyramid
Сайт | PyPi | GitHub | Stack Overflow
Если хочется что-то более минималистичное, то вам может прийтись по вкусу Pyramid. Этот фреймворк подходит для проектов любого размера. В нём есть полезные фичи для создания сложных приложений или масштабирования изначально небольших сайтов под возросшую нагрузку.
Фичи
- Удобные инструменты для работы со статичными ассетами.
- Предикаты и рендереры.
- Генерация URL.
Плюсы
- Гибкость и удобство кастомизации. Любой компонент фреймворка, будь то база данных или движок шаблонов, может быть заменён. Можно даже использовать несколько разных компонентов одновременно (например, подключить две разные базы данных).
- Удобные Ajax-запросы. Благодаря системе декораторов и представлений можно отправлять XHR-запросы без дополнительных усилий со стороны разработчика.
- Поддержка SQLAlchemy. SQLAlchemy обеспечивает удобную работу с базами данных даже для сложных запросов.
Минусы
- Требует времени на развёртывание и подготовку к разработке.
- Чтобы заниматься кастомизацией, надо хорошо разбираться в Pyramid.
- Для простых приложений SQLAlchemy может быть чересчур громоздкой.
Где используется?
- Charte.ca — онлайновый редактор графиков для неспециалистов.
- Easy Blog Networks — хостинг-провайдер.
- Substance-D — среда разработки веб-приложений.
TurboGears
Сайт | PyPi | GitHub | Stack Overflow
TurboGears — опенсорсный фреймворк для быстрой разработки приложений, работающих с данными. Он поддерживает SQLAlchemy, Genshi, WebOb, and Repoze, так что TurboGears прекрасно подходит для любой системы, требующей хорошей поддержки баз данных.
Фичи
- Поддержка горизонтального секционирования данных.
- Интеграция с джаваскриптовой библиотекой MochiKit.
- Поддержка нескольких баз данных одновременно.
- Поддержка архитектуры MVC.
- ToscaWidgets.
- Шаблоны PasteScript.
- Валидация через FormEncode.
Плюсы
- Гибкость. TurboGears можно использовать и как микрофреймворк для быстрого прототипирования, и как полноценный фулстек фреймворк для поддержки масштабных проектов.
- Расширяемость. Можно создавать собственные плагины или дополнять функциональность имеющихся.
Минусы
- У него так много возможностей для расширения, что в них легко запутаться.
Где используется?
- Apache Allura — онлайн-платформа для управления репозиториями кода, созданная SourceForge.
- Kamisons — сайт по продаже зонтов.
Flask
Сайт | PyPi | GitHub | Stack Overflow
Flask — это WSGI-фреймворк, который подходит и для простых сайтов, и для сложных платформ. Он совместим со сторонними библиотеками и имеет множество расширений.
Фичи
- Быстрый встроенный дебаггер.
- Встроенный dev-сервер.
- Шаблоны Jinja2.
- Поддержка REST-запросов.
- Совместим с любой ORM.
- Безопасные куки для управления сессией на клиенте.
- Поддержка юнит-тестов.
- Соответствует WSGI 1.0.
Плюсы
- Понятный минималистичный фреймворк. Довольно легко разобраться, что именно происходит и какой процесс за что отвечает. Логика работы не меняется от версии к версии.
- Быстрое прототипирование. Все инструменты, нужные для создания прототипа, работают прямо из коробки.
Минусы
- Фреймворк относительно низкоуровневый, поэтому в нём надо сперва разобраться, да и требования к уровню программиста выше, чем у остальных. Если хочется не выяснять, что и как работает под капотом, а сразу делать сайты — лучше выбрать что-нибудь другое.
Где используется?
- Rainist —онлайн-платформа для управления личными финансами.
- Netflix — одна из крупнейших стриминговых платформ в мире.
- Lyft — платформа для заказа такси и аренды транспорта.
Tornado
Сайт | PyPi | GitHub | Stack Overflow
Асинхронный фреймворк, благодаря неблокирующему обмену данными способный одновременно поддерживать множество пользовательских соединений. Прекрасно подходит для задач, требующих подолгу поддерживать соединение с каждым пользователем.
Фичи
- Есть свой механизм аутентификации, при необходимости можно подключить сторонние.
- Поддержка переводов и локализации.
- Работа в реальном времени.
Где используется?
- Uploadcare — облачный сервис для работы с файлами.
***
В статье мы рассказали только о самых популярных фреймворках. Одни более гибкие, другие просты в использовании; одни лучше подходят для маленьких проектов, а другие — для больших. Но все они так или иначе упрощают разработку и позволяют заниматься своим проектом, а не интерфейсами к базам данных или парсингом запросов.
Python и его фреймворки — только часть необходимых знаний веб-разработчика. Нужно ещё уметь работать с HTML, CSS, SQL и другими инструментами. Обо всем этом расскажут на курсе SkillFactory, после которого у вас будет базовый набор знаний и умений, чтобы начать работать веб-разработчиком.
Лучшие 19 фреймворков Python
Что нужно программистам 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? Сообщите нам об этом в комментариях.
Что такое Python Framework? 25 фреймворков Python для использования в 2022 году
Фреймворки Python обеспечивают базовую инфраструктуру для разработки надежного программного приложения Python. В зависимости от программного проекта, который пытается создать ваша команда, существуют лучшие и худшие фреймворки Python, подходящие для этой цели.
Источники показывают, что популярность Python неуклонно росла в последнее десятилетие или около того, и в 2021 году примерно 15% вопросов Stack Overflow были помечены как «python».
Таким образом, соответствующие технологии Python приобретают аналогичную популярность. Часто можно увидеть такие вопросы, как «Что такое фреймворк Python?» или параллельное сравнение фреймворков Python.
Сегодня вы узнаете о многочисленных фреймворках Python, которые можно использовать для вашего проекта разработки программного обеспечения. Но сначала, что такое фреймворк Python? Останьтесь, чтобы узнать !
Что такое Python Framework?
Фреймворк Python, как и любой другой фреймворк, поддерживает ваш проект разработки программного обеспечения с помощью фундамента или подструктуры, на которой можно строить. Чтобы было понятно 9Программные платформы 0003 отображают общую функциональность программы, которую вы пытаетесь создать, поэтому вашим разработчикам не нужно начинать с нуля .
Платформы Python, в частности, будут автоматизировать стандартные этапы создания приложений с использованием языка программирования Python. В результате разработчики Python сэкономят время на разработке, а ваш бизнес выиграет в целом.
Где наиболее рекомендуется использовать Python?
Python — интерпретируемый объектно-ориентированный язык программирования общего назначения. Разработчики языка уделяли первостепенное внимание читабельности кода при создании Python, что сделало язык высокопроизводительным.
Удобочитаемость — важная часть основополагающей философии Python. Наиболее яркое воплощение этого принципа в Python включает интуитивно понятное использование английского языка и легко перемещаемые блоки кода.
Основным достоинством Python является значительное пустое пространство, которое разработчики используют для изоляции блоков кода. Эта тактика способствует легкому чтению кода и придает программе более дружественный вид по сравнению с другими языками программирования, в которых используются специальные символы, такие как скобки.
Выпущенный в 1991 году Гвидо ван Россумом, сегодня Python известен как язык «на батарейках» из-за его большой стандартной библиотеки . Библиотеки Python описывают подключаемые фрагменты кода, которые вы можете добавить в свою программу с помощью простого вызова функции.
Стандартная библиотека Python — это то, что поставляется с языком прямо из коробки. Эта библиотека особенно обширна и содержит высокоуровневые структуры данных, такие как словари и списки, графика черепах и многое другое.
Язык программирования Python хорошо работает как на фронтенде, так и на бэкэнде разработки. Более того, разработчики используют Python для создания различного программного обеспечения , от веб-разработки до машинного обучения и обработки данных e.
Большая часть возможностей Python для разнообразного набора возможностей программирования связана с его простотой и стандартом, а также с дополнительными библиотеками.
Python Framework и библиотека Python
Некоторые люди задаются вопросом о разнице между платформами Python и библиотеками Python. Хотя они оба предлагают разработчикам операционные функции, их сходство заканчивается, когда дело доходит до специфики и сложности.
Например, библиотеки Python наполнены десятками полезных функций для конкретных целей, но особой сложности нет. Библиотеки Python выполняют простую задачу и в конечном итоге являются маленьким кусочком большой головоломки.
Поскольку фреймворки работают на основе определенного понимания того, как может выглядеть ваше приложение, допустима еще большая специфичность. Сложность — это название игры. Таким образом, фреймворк Python обрисует в общих чертах головоломку; чем сложнее каркас, тем больше очертаний внутренних частей.
Три основных типа фреймворков Python
Фреймворки Python бывают разных форм и размеров. Факторы, которые могут повлиять на выбор платформы, включают масштабируемость, опыт и цели вашего бизнеса.
Full Stack Framework
Full-stack frameworks подходят как для серверной, так и для внешней разработки. Веб-разработка состоит из интерфейсных инструментов для проектирования графического пользовательского интерфейса (UI) и внутренних сервисов, таких как базы данных, протоколы безопасности и бизнес-логика.
Платформа Python с полным стеком будет содержать все оборудование, необходимое для облегчения разработки с полным стеком. Django — это фреймворк с полным стеком и второй по популярности фреймворк Python.
Микрофреймворк
Микрофреймворк по определению легкий. В некотором смысле это противоположность фреймворку с полным стеком. Официальная документация Python по Flask объясняет, что «микро» в микрофреймворке означает, что « ядро фреймворка [является] простым, но расширяемым».0004 » .
Компоненты, которые являются фундаментальными для инфраструктуры полного стека, такие как система управления базами данных и определенные меры безопасности, не являются естественными для микрофреймворка.
Хотя это может показаться плохим, на самом деле это способствует гибкости для разработчиков, которые хотят использовать контроль над своим программным обеспечением, добавляя соответствующие сторонние библиотеки только тогда, когда они абсолютно необходимы.
Связанное чтение: Ruby и Python — какой язык программирования выбрать?
Асинхронная платформа
Асинхронные программы управляются событиями. Вместо построчной оперативной обработки, когда одна функция запускается за другой, асинхронный код не блокирует и не ждет выполнения одного события перед запуском другого.
Благодаря этому методу параллельного программирования асинхронные платформы позволяют выполнять множество высокопроизводительных одновременных подключений за счет работы на сервере с поддержкой асинхронности.
25 фреймворков Python для использования в 2022 году
Всего существуют десятки фреймворков Python. Но поскольку вы заботитесь о своем времени, вот 25 фреймворков Python, которые выделяются больше всего.
1. CubicWeb
CubicWeb соответствует определению фреймворка полного стека. Это также семантическая структура. Семантические технологии полагаются на онтологическое и концептуальное понимание для понимания данных.
Хотя типичная архитектура модель-представление-контроллер (MVC) чаще используется для разработки пользовательских интерфейсов, CubicWeb использует концепцию кубов. Кубы объединяются, чтобы создать экземпляр с файлами конфигурации, базой данных и веб-сервером.
2. AIOHTTP
AIOHTTP — это асинхронная структура, а также HTTP-клиент/сервер для asyncio. Хотя некоторые из этих слов могут показаться иностранными, суть в том, что AIOHTTP позволяет вашим разработчикам создавать асинхронные клиенты и серверы для вашего веб-приложения.
3. Dash
Dash — это микрофреймворк, который лучше всего подходит для создания ориентированных на анализ приложений Python. Фреймворк часто выбирают компании, заинтересованные в машинном обучении и науке о данных.
4. Бутылка
Бутылка — еще один микрокаркас. Быстрый и простой, его первоначальный дизайн был разработан для создания интерфейсов прикладного программирования (API).
Как и лучшие из микрофреймворков, Bottle подчеркивает свою облегченную сборку, а именно реализуя все в одном исходном файле и полагаясь на несколько зависимостей. Другие важные функции Bottle включают маршрутизацию, шаблон, утилиты и встроенный HTTP-сервер.
Bottle работает ближе к оборудованию, чем другие фреймворки. Однако вам следует выбрать более сложную структуру, если вы считаете, что ваша программа может занимать более 500 строк кода.
5. CherryPy
CherryPy называет себя минималистской структурой. С CherryPy вы можете создать целое приложение, используя принципы объектно-ориентированного программирования. В результате разработка проходит быстрее и легче.
6. Falcon
Еще одной API-ориентированной инфраструктурой является Falcon. Falcon — это минималистичный микрофреймворк, предназначенный для быстрой разработки приложений. Разработчики могут использовать преимущества Falcon для создания RESTful API, серверных частей приложений и микросервисов без бремени ненужных абстракций.
7. Django
Django — одна из самых популярных платформ Python для Python. Будучи по своей природе полным стеком, Django оснащен инструментами для создания больших и сложных веб-приложений .
8. Flask
Flask исторически конкурирует с Django. Django и Flask — две самые популярные среды Python. Тем не менее, они дико разные.
В отличие от Django, Flask представляет собой микрофреймворк и не содержит никаких инструментов или функций, которые сторонние библиотеки могут выполнять как необходимые для его упаковки.
9. Giotto
Giotto — это фреймворк Python, в котором особое внимание уделяется разделению задач, которое вызывает классическая архитектура MVC. Из-за универсальной реализации представлений, моделей и нескольких подключаемых контроллеров в Giotto фреймворк является сосудом для упрощения и сокращения времени разработки.
10. Growler
Growler — это одновременно и асинхронный фреймворк, и микрофреймворк. Фреймворк использует асинхронную библиотеку Python, asyncio, а также промежуточное ПО для обработки HTTP-запросов.
11. Pylons
Pylons заимствует лучшие компоненты Perl, Python и Ruby, чтобы воплотить в жизнь полноценную структуру с упором на быструю разработку. Как и Flask, Pylons легкий и гибкий.
12. Pyramid
Pyramid — это ведущая полнофункциональная платформа Python. Масштабируемость является его самым большим преимуществом, так как небольшие и полномасштабные приложения могут зависеть от Pyramid при их разработке.
На своем официальном сайте Pyramid называет себя «Решением Златовласки: не слишком маленьким и не слишком большим, а правильным».
13. Sanic
Sanic имеет сходство с Flask, но его асинхронность делает его даже быстрее, чем Flask. Сравнительные тесты показывают, что Sanic может обрабатывать десятки тысяч запросов в секунду.
14. Hug
Hug — это микрофреймворк для разработки API. Hug, названный самой быстрой средой для Python 3, прокладывает путь для технологий будущего.
15. Morepath
Названный «Super Powered Python Web Framework», Morepath представляет собой выразительную управляемую моделями микроинфраструктуру, обеспечивающую маршрутизацию к своим моделям.
Как и с шаблонами MVC, модели представляют данные, а представления представляют пользовательский интерфейс . В Morepath приложение состоит из моделей, которые перенаправляются на путь URL. Контент передается в сеть через просмотры.
16.
Pycnic
Pycnic — это объектно-ориентированная микроинфраструктура, позволяющая разработчикам создавать API на основе JSON. Нотация объектов JavaScript (JSON) — это синтаксис для управления данными, хранящимися в объектах.
17. Tornado
Первоначально разработанная для поддержки социальной сети FriendFeed, которая впоследствии была приобретена Facebook, Tornado представляет собой асинхронную среду Python, которая может одновременно обрабатывать несколько тысяч пользователей с неблокирующим сетевым вводом-выводом. .
18. TurboGears
TurboGears универсален для использования в качестве полнофункциональной платформы или микрофреймворка. Платформа управляется данными, удобна для пользователя и расширяет механизм шаблонов и объектно-реляционный преобразователь (ORM).
19. Web2py
Изначально Web2py создавался как обучающий инструмент, но как полноценный фреймворк он загружен множеством функций, позволяющих делать гораздо больше. Например, нет требований к установке и настройке; web2py является кроссплатформенным; и поставляется с собственной интегрированной средой разработки (IDE).
20. FastAPI
FastAPI говорит сам за себя. Это современная среда Python для создания API с функциями, ускоряющими процесс разработки. Большая часть его дизайна обязана Flask.
21. Grok
Grok использует важные принципы программирования, такие как «не повторяйся» (DRY) и «соглашение важнее конфигурации» (CoC) , чтобы способствовать гибкой разработке.
DRY стремится уменьшить количество повторений за счет стандартизации абстракций. Аналогичным образом, CoC направлена на то, чтобы облегчить разработчикам изнурительный процесс принятия решений, начав их с обычного фундамента, на котором они могут строить, чтобы они могли сэкономить время на настройке.
22. BlueDream
BlueBream — это среда Python, наиболее оптимальная для создания средних и больших приложений. BlueBream — это не просто фреймворк, а сервер и библиотека. Некоторые из его лучших особенностей — это компонентная архитектура, база данных транзакционных объектов и интегрированные протоколы безопасности.
Связанное чтение: Python и Java — параллельное сравнение
23. Quixote
Quixote — это простая и гибкая платформа Python для разработки веб-приложений. Любой, у кого есть хорошие знания в Python, должен преуспеть в Quixote.
24. Weppy
Weppy — стилизованное под «weppy» в нижнем регистре — представляет собой полнофункциональную платформу Python, в основе которой лежит простота. Его элегантный синтаксис побуждает разработчиков сосредоточиться на продукте, который они создают, а не пытаться ориентироваться в самом фреймворке.
25. Zope
Zope — это сервер приложений и веб-фреймворк. Его основной вариант использования — разработка систем управления контентом (CMS).
Как выбрать лучшую платформу Python для использования
Использование среды Python — верный способ ускорить и оптимизировать разработку. Фреймворки Python не являются обязательными, но также было бы неразумно пренебрегать возможностью улучшить процесс разработки там, где это возможно.
Чтобы выяснить, какая среда Python лучше всего подходит для вашего программного проекта, начните с оценки различных типов сред, которые вы можете выбрать. Выделяются три основные категории фреймворков: фреймворки с полным стеком, микрофреймворки и асинхронные фреймворки.
Микрокаркасы небольшие, но гибкие; фреймворки полного стека сложны, но масштабируемы; а асинхронные фреймворки расширяют возможности Python для параллелизма.
Как только вы выберете, какой класс фреймворков Python вам подходит, вы можете сузить свой выбор, сосредоточившись на самих фреймворках. Выше перечислены 25 различных фреймворков с разными возможностями.
Вы должны выбрать среду Python, основываясь на масштабируемости, скорости, опыте ваших разработчиков в развертывании навыков, специфичных для среды, и ряде других соображений, которые могут способствовать вашему бизнесу.
Изучение всех без исключения фреймворков Python, вероятно, не стоит вашего времени. Но то, что вы узнали здесь, может лучше помочь вам точно определить, что вам нужно.
Заключение
Что такое фреймворк Python? Это инструмент для расширения возможностей вашего следующего проекта Python, но только если вы используете правильный.
Для вас есть множество разнообразных фреймворков Python, которые дадут вам и вашей команде разработчиков программного обеспечения преимущество в вашем проекте 2022 года. Мир фреймворка Python — ваша устрица.
Хорошее понимание того, как будет работать ваш следующий проект, даже если вы не разбираетесь в технологиях, будет иметь решающее значение для выбора оптимального стека технологий для поддержки вашей разработки.
Исследования никогда не помешают, и если вам нужно проконсультироваться с некоторыми из наиболее квалифицированных специалистов в отрасли, в этом нет ничего постыдного. Вот почему Трио здесь, чтобы помочь.
Trio может помочь вам выбрать лучший фреймворк Python для вашего проекта 2022 года, а также построить сам проект, используя заданные вами параметры.
Свяжитесь с Trio сейчас, чтобы нанять опытных разработчиков и начать свой проект разработки Python уже сегодня!
Что такое фреймворки Python (примеры): введение
Python зародился в конце 1980-х. Он был разработан Гвидо ван Россумом в Centrum Wiskunde & Informatica, исследовательском центре математики и компьютерных наук в Амстердамском научном парке в Нидерландах. Ван Россум продолжает оставаться влиятельной фигурой в разработке и руководстве Python. Фактически, члены сообщества Python присвоили ему царственный титул «Доброжелательный диктатор на всю жизнь» (BDFL).
С тех скромных начинаний Python превратился в один из самых популярных серверных языков в Интернете. По данным W3Techs, он используется более посещаемыми сайтами, чем ColdFusion, PHP и ASP.NET. Более 98 процентов этих сайтов используют Python 2. 0, и чуть более одного процента используют версию 3.0.
Сегодня существует множество фреймворков Python, которые значительно упрощают создание веб-приложений. Эти фреймворки объединяют модули и пакеты, которые позволяют быстро создавать приложения, не заботясь о таких деталях, как сокеты и протоколы, и все это в одном месте.
В первой части этой серии статей, состоящей из двух частей, мы рассмотрим некоторые из наиболее популярных фреймворков Python. Хотя большинство современных веб-фреймворков используются на сервере, некоторые из них начинают включать код, который позволяет им запускать код на клиенте (например, Skulpt или Trinket). Фреймворки Python часто разделяют на полностековые и неполные. Фреймворки с полным стеком помогают разработчикам создавать приложения, начиная с взаимодействия с пользователем и заканчивая базой данных. Фреймворки без полного стека — это те, которые занимаются чем-то меньшим, чем полная разработка.
Существуют также микрофреймворки, которые не являются фреймворками с полным стеком и менее раздуты. В некоторых ситуациях имеет смысл использовать набор микрофреймворков, в то время как для других приложений требуется полный стек. Мы более подробно рассмотрим полный стек и микрофреймворки во второй части этой серии.
Возможно, самой популярной средой Python является Django. Это платформа с открытым исходным кодом, которая следует архитектурному шаблону модель-представление-контроллер (MVC). Он назван в честь Джанго Рейнхардта, французского композитора и гитариста, которого многие считают одним из величайших гитаристов в истории. Два разработчика из Lawrence Journal-World в Лоуренсе, штат Канзас, Адриан Головатый и Саймон Уиллисон, создали Django в 2003 году для создания веб-приложений для газеты.
Django включает собственный механизм шаблонов, а также обеспечивает поддержку OOTB для широко популярного механизма Jinja2. Он также использует диспетчер URL-адресов на основе регулярных выражений, что позволяет выполнять сложные сопоставления с очень простыми URL-адресами.
Одной из сильных сторон Django является то, что это установка одного пакета. Другие альтернативы требуют, чтобы разработчики выискивали множество компонентов только для того, чтобы начать работу. Кроме того, у Django всегда была обширная документация, что исторически было слабостью проектов с открытым исходным кодом. Это надежная, хорошо интегрированная платформа с множеством подключаемых модулей и надстроек от сообщества пользователей. Кроме того, сообщество, стоящее за проектом, кажется гораздо более организованным, о чем свидетельствует его подробная документация и учебные пособия.
TurboGears — это платформа, созданная на основе нескольких авторитетных проектов Python, таких как SQLAlchemy, WebOb, Repoze и Genshi. В некотором смысле TurboGears использует подход, объединяющий уже существующие открытые платформы. Как и Django, он использует архитектуру MVC. Недавно он также включил «минимальный режим», который позволяет ему действовать как микрофреймворк.
TurboGears был разработан Кевином Дангуром в 2005 году. Он распространил его как проект с открытым исходным кодом в сентябре того же года. В 2013 году разработчики проекта перешли на поддержку Python 3 и отказались от кодовой базы Pylons, с которой они работали. Некоторые из преимуществ TurboGears включают в себя:
- Прочная опора для агрегатов
- Мощный объектно-реляционный преобразователь
- Система транзакций, которая автоматически обрабатывает транзакции с несколькими базами данных
- Поддержка нескольких баз данных
- Повторно используемые фрагменты для шаблонов
- Большая гибкость для включения нестандартных компонентов
- Поддержка шардинга
- Системы шаблонов, облегчающие жизнь дизайнерам
Некоторые из недостатков TurboGears включают в себя очень простой администратор, меньшее количество сторонних приложений и элементарную документацию. Основная проблема с TurboGears заключается в том, что он может быть ошеломляющим. Поскольку он представляет собой смесь других компонентов, обеспечивающих бесконечную гибкость, он может быть ошеломляющим при попытке решить, какой путь выбрать для выполнения задачи.
Одна платформа с открытым исходным кодом, web2py, позволяет разработчикам быстро создавать динамические интерактивные веб-сайты. Он предназначен для устранения многих повторяющихся задач программирования, которые замедляют разработку, таких как создание базовых форм. Изначально он создавался как учебное пособие. Он был создан по образцу Django и Ruby on Rails, фреймворка для языка Ruby. Как и TurboGears, он использует архитектуру MVC.
Оригинальный исходный код был выпущен в 2007 году Массимо ДиПьерро. В то время он был известен как Enterprise Web Framework (EWF). Из-за конфликтов имен он несколько раз менял имена и остановился на web2py в версии 1.16. Несколько приложений, созданных с помощью web2py, включают систему управления контентом Movuca, музыкальный сайт NoobMusic, диагностический инструмент для сетей под названием LinkFindr и платформу для ведения блогов Instant Press. В 2011 году web2py получил награду Bossie Award за лучшее программное обеспечение для разработки с открытым исходным кодом. В следующем году его путь к победе продолжился, когда он принес домой награду InfoWorld «Технология года».
Как и Django, web2py имеет обширную документацию. Как новые, так и опытные разработчики могут бесплатно скачать Полное справочное руководство.
Среди преимуществ web2py:
- Простота использования. Как надежная структура с полным стеком, она работает без каких-либо зависимостей. Это упрощает изучение и развертывание, поскольку для установки не требуются файлы конфигурации. После скачивания и установки все работает. Разработчики получают базу данных, веб-среду IDE и веб-сервер, а также мощный API с рядом основных объектов.
- Отличная безопасность. Язык шаблонов Web2py снижает опасность хакеров, использующих межсайтовые сценарии. Уровень абстракции предотвращает SQL-инъекции, в то время как созданные формы имеют проверку полей и предотвращают подделку межсайтовых запросов. Сеансы хранятся на сервере, чтобы злоумышленники не возились с файлами cookie браузера, а каждый пароль хранится в хешированном виде.
Некоторые недостатки web2py включают в себя:
- Сложность регулярного использования административного интерфейса
- Нет разрешений на административный интерфейс
- Нет встроенной поддержки модульного тестирования
- Быстрое развитие. Все функции имеют поведение по умолчанию. Формы генерируются автоматически, а высокоуровневые виджеты и сетки приложений встроены.
Flask — это микрофреймворк Python, основанный на Jinja2 и Werkzeug. Подобно другим платформам, он распространяется под лицензией Berkeley Software Distribution (BSD), лицензией на бесплатное программное обеспечение, которая работает с некоторыми ограничениями. Веб-сайты, которые использовали Flask, включают LinkedIn и Pinterest. Он включает в себя такие функции, как:
- Встроенная поддержка модульного тестирования
- Создание шаблонов с использованием Jinja2
- Расширенная документация
- Сеансы на стороне клиента с использованием безопасных файлов cookie
- Сервер разработки и отладчик
- Диспетчеризация запросов RESTful
- Совместим с WSGI версии 1. 0
- Unicode на основе
- Многочисленные расширения
Flask — это молодой фреймворк, появившийся на сцене в 2010 году. Философская цель Flask — не навязывать программисту условности, позволяя вам использовать по своему выбору DB ORM, механизм шаблонов, промежуточное программное обеспечение сеанса или другие компоненты, которые вам нужны. требует проект. Как правило, на мой взгляд, это цель «микрофреймворка».
Я бы сказал, что такой фреймворк, как Flask, лучше подходит для более опытных разработчиков, а не только для небольших приложений. Конечно, если вы просто хотите создать простой REST API, тогда Flask определенно будет хорошим выбором.
Как и Flask, Bottle представляет собой веб-фреймворк WSGI. Распространяемый в виде одного файла, он не имеет никаких зависимостей за пределами стандартной библиотеки Python. Написанный Марселем Хеллкампом в 2009 году, он содержит минимум инструментов для начала, включая шаблоны, маршрутизацию и уровень абстракции WSGI. Этот небольшой мощный фреймворк отлично подходит для программистов, которые ищут гибкость и базовую функциональность, создают простые приложения и веб-сайты и создают веб-API.
Его преимущества включают в себя:
- Быстрый механизм шаблонов, встроенный и поддерживающий Jinja2, Mako и Cheetah
- Многие утилиты, которые могут получить доступ к загрузкам, файлам cookie, данным форм, заголовкам и другим метаданным
- , поддерживающий fapws3, Google App Engine, CherryPy и Paste
- Поддержка динамических URL-адресов
Встроенный HTTP-сервер разработки
Еще одним преимуществом Bottle является то, что его небольшой профиль позволяет легко встроить его в более крупное приложение, не беспокоясь о общесистемных зависимостях. Бутылка для вас, если вы хотите создавать небольшие приложения с простой, чистой и быстрой структурой, которая не многословна.
Трудно поверить, но это лишь некоторые из десятков фреймворков Python, доступных разработчикам.