ЧерриПи
Разработчик(и) | Команда CherryPy |
---|---|
Первоначальный выпуск | июнь 2002 г [1] |
Стабильная версия | 18.8.0 [2] ![]() |
Репозиторий | Репозиторий CherryPy |
Написано в | Питон |
Операционная система | Кросс-платформенный |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия БСД [3] |
Веб-сайт | вишнёвый |
![]() | Эта статья может содержать чрезмерные или неуместные ссылки на самостоятельно опубликованные источники . ( Апрель 2024 г. ) |
CherryPy — это объектно-ориентированная среда веб-приложений, использующая язык программирования Python . Он предназначен для быстрой разработки веб -приложений с использованием протокола HTTP , но остается на низком уровне и не предлагает намного больше, чем определено в RFC 7231.
CherryPy может быть сам веб-сервером или его можно запустить через любую среду, совместимую с WSGI . Он не занимается такими задачами, как создание шаблонов для рендеринга вывода или доступ к серверной части. Платформу можно расширить с помощью фильтров, которые вызываются в определенных точках обработки запроса/ответа.
Питонический интерфейс
[ редактировать ]Одной из целей основателя проекта Реми Делона было сделать CherryPy максимально питоничным . Это позволяет разработчику использовать фреймворк как любой обычный модуль Python и забыть (с технической точки зрения), что приложение предназначено для веба.
Например, общая программа Hello World с CherryPy 3 будет выглядеть так:
import cherrypy
class HelloWorld:
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
Функции
[ редактировать ]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]
- Встроенное профилирование начиная с версии 2.1, [13] покрытие [14] и поддержка тестирования.
CherryPy не заставляет вас использовать конкретный объектно-реляционный преобразователь (ORM), язык шаблонов или библиотеку JavaScript .
Может использоваться с CherryPy.
[ редактировать ]- Маршруты — повторная реализация Python системы маршрутов Ruby on Rails для сопоставления 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 и Firebird . TurboGears 1.x использует CherryPy в качестве сервера и SQLObject в качестве ORM. [17]
- Storm — ORM от Canonical Ltd. (создателей Ubuntu )
- Мне грустно [18] — общедоступное программное обеспечение , поточно-ориентированная ORM для приложений Python.
- MongoEngine — ODM для подключения к MongoDB .
Языки шаблонов
[ редактировать ]- Неделя [19] — библиотека шаблонов, написанная на Python, которую можно использовать с простым инструментом CherryPy. [20]
- Cheetah — шаблонизатор с открытым исходным кодом и инструмент генерации кода, написанный на Python.
- CherryTemplate — язык шаблонов для CherryPy.
- Генши [21] [22] — мощный язык шаблонов XML.
- Jinja — язык шаблонов общего назначения. В CherryPy есть инструмент для использования шаблонов Jinja. [23]
- Kid — простой язык шаблонов для словарей на основе XML, написанный на Python. TurboGears 1.x использует CherryPy в качестве сервера и Kid в качестве интерфейса. [24]
Вики CherryPy помогает [25] выбор языка шаблонов.
Продукты, использующие CherryPy
[ редактировать ]- TurboGears — CherryPy 2.x является основным компонентом TurboGears 1.x.
- Splunk Enterprise — CherryPy 3.1.2 [26]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «История CherryPy» .
- ^ «Выпуск v18.8.0» . 18 июля 2022 г. Проверено 18 июля 2022 г.
- ^ "cherrypy/CherryPy/source/cherrypy/LICENSE.txt" . Битбакет. Архивировано из оригинала 15 июля 2017 года . Проверено 21 февраля 2015 г.
- ^ «CherryPy — минималистичный веб-фреймворк Python» .
- ^ «Результаты тестирования сервера CherryPy v3 WSGI» . Архивировано из оригинала 3 марта 2016 г. Проверено 23 сентября 2009 г.
- ^ Насколько быстро работает CherryPy? Архивировано 10 февраля 2010 года в Wayback Machine.
- ^ «Как настроить несколько HTTP-серверов с помощью CherryPy» . Архивировано из оригинала 3 марта 2016 г. Проверено 23 сентября 2009 г.
- ^ Пользовательские плагины движка с 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» . Архивировано из оригинала 17 ноября 2015 г. Проверено 23 сентября 2009 г.
- ^ «Простой диспетчерский инструмент для CherryPy, использующий маршруты» . Архивировано из оригинала 14 января 2016 г. Проверено 27 сентября 2009 г.
- ^ TurboGears 2.x использует CherryPy в качестве сервера и SQLAlchemy в качестве ORM по умолчанию.
- ^ TurboGears 1.x использует CherryPy в качестве сервера и SQLObject в качестве ORM. Архивировано 22 сентября 2009 г. на Wayback Machine.
- ↑ Дежавю . Архивировано 17 мая 2009 г. в Wayback Machine.
- ^ Неделя
- ^ «Простой инструмент CherryPy для создания шаблонов Mako» . Архивировано из оригинала 3 марта 2016 г. Проверено 21 сентября 2009 г.
- ^ «CherryPy — Генши» . Проверено 26 сентября 2009 г.
- ^ «Генши — Инструменты CherryPy — Trac» . Архивировано из оригинала 27 февраля 2012 г. Проверено 26 сентября 2009 г.
- ^ «Базовый инструмент CherryPy для использования шаблонов Jinja» . Архивировано из оригинала 5 сентября 2015 г. Проверено 23 сентября 2009 г.
- ^ TurboGears 1.x использует CherryPy в качестве сервера и Kid в качестве внешнего интерфейса. Архивировано 22 сентября 2009 г. на Wayback Machine.
- ^ Вики CherryPy о выборе языка шаблонов. Архивировано 10 февраля 2010 г. на Wayback Machine.
- ^ «CherryPy — База знаний Splunk» . Архивировано из оригинала 17 ноября 2015 г. Проверено 24 марта 2015 г.