CherryPy - CherryPy
Разработчики) | Команда CherryPy |
---|---|
изначальный выпуск | Июнь 2002 г.[1] |
Стабильный выпуск | 18.5.0[2] / 27 ноября 2019 |
Репозиторий | Репозиторий CherryPy |
Написано в | Python |
Операционная система | Кроссплатформенность |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия BSD[3] |
Интернет сайт | вишневый |
CherryPy является объектно-ориентированный каркас веб-приложений с использованием Язык программирования Python. Он предназначен для быстрое развитие из веб-приложения к оберточная бумага в Протокол HTTP но остается на низком уровне и не предлагает ничего большего, чем определено в RFC 7231.
CherryPy может быть самим веб-сервером или запускаться через любой WSGI совместимая среда. Он не занимается такими задачами, как создание шаблонов для рендеринга вывода или доступа к серверной части. Платформа расширяется с помощью фильтров, которые вызываются в определенных точках обработки запроса / ответа.
Pythonic интерфейс
Одна из целей основателя проекта, Реми Делон, должен был сделать CherryPy как питонический насколько возможно. Это позволяет разработчику использовать фреймворк как любой обычный модуль Python и забыть (с технической точки зрения), что приложение предназначено для Интернета.
Например, обычный Привет, мир программа с CherryPy 3 будет выглядеть так:
импорт вишневыйучебный класс Привет, мир: def индекс(себя): возвращаться "Привет, мир!" индекс.незащищенный = Истинныйвишневый.быстрый старт(Привет, мир())
Функции
CherryPy реализует:
- А HTTP / 1.1 -соответствует, WSGI объединенный потоками веб сервер.[4] Как правило, сама CherryPy занимает всего 1-2 мс на страницу.[5][6]
- Поддержка любых других WSGI-включенных веб сервер или адаптер, в том числе Apache, IIS, lighttpd, mod_python, FastCGI, SCGI, и mod_wsgi.
- Уроженец mod_python адаптер.
- Несколько HTTP-серверов (например, возможность прослушивания нескольких портов).[7]
- А плагин система[8] CherryPy плагины подключиться к событиям в сервер процесс - при запуске сервера, завершении работы сервера, выходе из сервера и т. д. - для запуска кода, который необходимо запускать при запуске или завершении работы сервера.
- Встроенные инструменты для кеширование, кодирование, сессии, разрешение, статический контент и другие. CherryPy инструменты подключиться к событиям в запрос процесс. Всякий раз, когда сервер CherryPy получает запрос, существует определенный набор шагов, которые он выполняет для обработки этого запроса. Обработчики страниц - это только один шаг в этом процессе. Инструменты также предоставляют синтаксис и API конфигурации для их включения и выключения для определенного набора обработчиков.
- Система конфигурации для разработчиков и разработчиков.[9][10][11] Развертывания CherryPy настраиваются на сайте, в приложении и на уровне контроллера с помощью словарей Python, файлов конфигурации и открытых файловых объектов.
- Полный тестирование для основных функций и связанной структуры, которая может использоваться для тестирования приложений CherryPy.[12]
- Встроенный профилирование с v2.1,[13] покрытие[14] и поддержка тестирования.
CherryPy не заставляет вас использовать конкретный объектно-реляционный преобразователь (ORM), язык шаблона или же Библиотека JavaScript.
Может использоваться с CherryPy
- Маршруты - повторная реализация Python Рубин на рельсах система маршрутов для отображения URL-адреса к контроллерам / действиям и генерации URL-адресов.[15]
Объектно-реляционные картографы
- SQLAlchemy - серверная часть базы данных и ORM для приложений Python. TurboGears 2.x использует CherryPy в качестве сервера и SQLAlchemy в качестве ORM по умолчанию.[16]
- SQLObject - популярный ORM для предоставления объектного интерфейса к базе данных. Поддерживает ряд общих баз данных: в дистрибутив включены MySQL, PostgreSQL, SQLite, Sybase SQL Server, MaxDB, Microsoft SQL Server и Жар-птица. TurboGears 1.x использует CherryPy в качестве сервера и SQLObject в качестве ORM.[17]
- Буря - в ORM из Canonical Ltd. (создатели Ubuntu )
- Дежавю[18] - а программное обеспечение общественного достояния, потокобезопасный ORM для приложений Python
- MongoEngine - An ODM для подключения к MongoDB.
Языки шаблонов
- Мако[19] - библиотека шаблонов, написанная на Python, которую можно использовать с простым инструментом CherryPy.[20]
- Гепард - открытый исходный код шаблонизатор и инструмент генерации кода, написанный на Python.
- CherryTemplate - язык шаблонов для CherryPy.
- Генши[21][22] - мощный язык шаблонов XML.
- Джиндзя - язык шаблонов общего назначения. CherryPy имеет инструмент для использования шаблонов Jinja.[23]
- Дитя - простой язык шаблонов для словарей на основе XML, написанных на Python. TurboGears 1.x использует CherryPy в качестве сервера и Kid в качестве интерфейса.[24]
CherryPy вики помогает[25] выбор языка шаблонов.
Продукты, использующие CherryPy
- TurboGears - CherryPy 2.x является основным компонентом TurboGears 1.x.
- Splunk Предприятие - CherryPy 3.1.2[26]
Смотрите также
Рекомендации
- ^ "История CherryPy".
- ^ https://pypi.python.org/pypi/CherryPy
- ^ "cherrypy / CherryPy / source / cherrypy / LICENSE.txt". BitBucket. Получено 21 февраля 2015.
- ^ http://www.cherrypy.org/#Features
- ^ «Результаты тестирования сервера CherryPy v3 WSGI». Архивировано из оригинал на 2016-03-03. Получено 2009-09-23.
- ^ Насколько быстро работает CherryPy? В архиве 10 февраля 2010 г. Wayback Machine
- ^ «Как настроить несколько HTTP-серверов с CherryPy». Архивировано из оригинал на 2016-03-03. Получено 2009-09-23.
- ^ Пользовательские плагины движка с CherryPy В архиве 3 мая 2009 г. Wayback Machine
- ^ Система конфигурации CherryPy В архиве 26 июня 2009 г. Wayback Machine
- ^ API конфигурации CherryPy В архиве 1 июля 2009 г. Wayback Machine
- ^ Краткое описание параметров конфигурации
- ^ Как протестировать сам CherryPy В архиве 27 сентября 2009 г. Wayback Machine
- ^ Модуль профилировщика CherryPy В архиве 9 февраля 2010 г. Wayback Machine
- ^ «Как собрать и проанализировать данные о покрытии кода приложения с помощью CherryPy». Архивировано из оригинал на 2015-11-17. Получено 2009-09-23.
- ^ «Простой инструмент диспетчера CherryPy, использующий маршруты». Архивировано из оригинал на 2016-01-14. Получено 2009-09-27.
- ^ TurboGears 2.x использует CherryPy в качестве сервера и SQLAlchemy в качестве ORM по умолчанию.
- ^ TurboGears 1.x использует CherryPy как сервер и SQLObject как ORM В архиве 22 сентября 2009 г. Wayback Machine
- ^ Дежавю В архиве 17 мая 2009 г. Wayback Machine
- ^ Мако
- ^ «Простой инструмент CherryPy для создания шаблонов Mako». Архивировано из оригинал на 2016-03-03. Получено 2009-09-21.
- ^ "CherryPy - Genshi". Получено 2009-09-26.
- ^ "Genshi - CherryPy Tools - Trac". Архивировано из оригинал на 2012-02-27. Получено 2009-09-26.
- ^ «Базовый инструмент CherryPy для использования шаблонов Jinja». Архивировано из оригинал на 2015-09-05. Получено 2009-09-23.
- ^ TurboGears 1.x использует CherryPy в качестве сервера и Kid в качестве интерфейса. В архиве 22 сентября 2009 г. Wayback Machine
- ^ CherryPy wiki о выборе языка для создания шаблонов В архиве 10 февраля 2010 г. Wayback Machine
- ^ «Архивная копия». Архивировано из оригинал на 2015-11-17. Получено 2015-03-24.CS1 maint: заархивированная копия как заголовок (связь)