Marco de aplicación web
CherryPy es un marco de trabajo para aplicaciones web orientado a objetos que utiliza el lenguaje de programación Python . Está diseñado para el desarrollo rápido de aplicaciones web envolviendo el protocolo HTTP , pero se mantiene en un nivel bajo y no ofrece mucho más que lo que se define en RFC 7231.
CherryPy puede ser un servidor web en sí mismo o se puede iniciar a través de cualquier entorno compatible con WSGI . No se ocupa de tareas como la creación de plantillas para la representación de salida o el acceso al backend. El marco es extensible con filtros, que se invocan en puntos definidos en el procesamiento de la solicitud/respuesta.
Interfaz Python
Uno de los objetivos del fundador del proyecto, Remi Delon, era hacer que CherryPy fuera lo más Pythonic posible. Esto permite al desarrollador utilizar el framework como cualquier módulo Python normal y olvidarse (desde un punto de vista técnico) de que la aplicación es para la web.
Por ejemplo, el programa común Hola Mundo con CherryPy 3 se vería así:
importar cherrypyclase HolaMundo : def índice ( self ): devuelve " ¡Hola Mundo! " índice.expuesto = True cherrypy . inicio rápido ( HelloWorld ())
Características
CherryPy implementa:
- Un servidor web WSGI compatible con HTTP/1.1 y con agrupación de subprocesos . [4] Normalmente, CherryPy solo tarda entre 1 y 2 ms por página. [5] [6]
- Compatibilidad con cualquier otro servidor web o adaptador habilitado para WSGI, incluidos Apache , IIS , lighttpd , mod_python , FastCGI , SCGI y mod_wsgi .
- Un adaptador nativo mod_python .
- Múltiples servidores HTTP (por ejemplo, capacidad de escuchar en múltiples puertos). [7]
- Un sistema de complementos [8] Los complementos de CherryPy se conectan a eventos dentro del proceso del servidor (inicio del servidor, apagado del servidor, salida del servidor, etc.) para ejecutar el código que debe ejecutarse cuando el servidor se inicia o se apaga.
- Herramientas integradas para almacenamiento en caché , codificación , sesiones , autorización , contenido estático y otros. Las herramientas CherryPy se conectan a los eventos dentro del proceso de solicitud . Siempre que el servidor CherryPy recibe una solicitud, hay un conjunto específico de pasos que sigue para manejar esa solicitud. Los controladores de páginas son solo un paso en el proceso. Las herramientas también proporcionan una API de sintaxis y configuración para activarlas y desactivarlas para un conjunto específico de controladores.
- Un sistema de configuración para desarrolladores e implementadores. [9] [10] [11] Las implementaciones de CherryPy se pueden configurar en el sitio, en la aplicación y en el nivel del controlador, a través de diccionarios de Python, archivos de configuración y objetos de archivos abiertos.
- Un conjunto de pruebas completo para la funcionalidad principal y el marco asociado que se puede utilizar para probar aplicaciones CherryPy. [12]
- Creación de perfiles integrada desde v2.1, [13] cobertura [14] y soporte para pruebas.
CherryPy no te obliga a utilizar un mapeador relacional de objetos (ORM), un lenguaje de plantilla o una biblioteca de JavaScript específicos .
Se puede utilizar con CherryPy
- Rutas: una reimplementación en Python del sistema de rutas de Ruby on Rails para mapear URL a controladores/acciones y generar URL. [15]
Mapeadores relacionales de objetos
Lenguajes de plantillas
- Mako [19] — una biblioteca de plantillas escrita en Python, utilizable con una herramienta CherryPy simple. [20]
- Cheetah : un motor de plantillas de código abierto y una herramienta de generación de código, escrito en Python.
- CherryTemplate: un lenguaje de plantillas para CherryPy.
- Genshi [21] [22] — un potente lenguaje de plantillas XML.
- Jinja : un lenguaje de plantillas de uso general. CherryPy tiene una herramienta para usar plantillas Jinja. [23]
- Kid : un lenguaje de plantillas simple para vocabularios basados en XML escrito en Python. TurboGears 1.x utiliza CherryPy como servidor y Kid como interfaz. [24]
La wiki de CherryPy ayuda [25] a elegir un lenguaje de plantillas.
Productos que utilizan CherryPy
- TurboGears — CherryPy 2.x es un componente principal de TurboGears 1.x.
- Splunk Enterprise - CherryPy 3.1.2 [26]
Véase también
Referencias
- ^ "Historia de CherryPy".
- ^ "Versión v18.8.0". 18 de julio de 2022. Consultado el 18 de julio de 2022 .
- ^ "cherrypy/CherryPy/source/cherrypy/LICENSE.txt". BitBucket. Archivado desde el original el 15 de julio de 2017. Consultado el 21 de febrero de 2015 .
- ^ "CherryPy: un marco web Python minimalista".
- ^ "Resultados de la evaluación comparativa del servidor WSGI de CherryPy v3". Archivado desde el original el 2016-03-03 . Consultado el 2009-09-23 .
- ^ ¿ Qué tan rápido es CherryPy? Archivado el 10 de febrero de 2010 en Wayback Machine
- ^ "Cómo configurar varios servidores HTTP con CherryPy". Archivado desde el original el 3 de marzo de 2016. Consultado el 23 de septiembre de 2009 .
- ^ Complementos de motor personalizados con CherryPy Archivado el 3 de mayo de 2009 en Wayback Machine
- ^ Sistema de configuración de CherryPy Archivado el 26 de junio de 2009 en Wayback Machine.
- ^ API de configuración de CherryPy Archivado el 1 de julio de 2009 en Wayback Machine
- ^ Breve resumen de las opciones de configuración
- ^ Cómo probar CherryPy en sí Archivado el 27 de septiembre de 2009 en Wayback Machine
- ^ Módulo de perfilador de CherryPy Archivado el 9 de febrero de 2010 en Wayback Machine.
- ^ "Cómo recopilar y analizar datos de cobertura del código de aplicación con CherryPy". Archivado desde el original el 17 de noviembre de 2015. Consultado el 23 de septiembre de 2009 .
- ^ "Una herramienta despachadora simple para CherryPy que utiliza rutas". Archivado desde el original el 14 de enero de 2016. Consultado el 27 de septiembre de 2009 .
- ^ TurboGears 2.x utiliza CherryPy como servidor y SQLAlchemy como su ORM predeterminado
- ^ TurboGears 1.x utiliza CherryPy como servidor y SQLObject como ORM Archivado el 22 de septiembre de 2009 en Wayback Machine
- ^ Dejavu Archivado el 17 de mayo de 2009 en Wayback Machine.
- ^ Mako
- ^ "Una herramienta CherryPy sencilla para crear plantillas Mako". Archivado desde el original el 3 de marzo de 2016. Consultado el 21 de septiembre de 2009 .
- ^ "CherryPy – Genshi" . Consultado el 26 de septiembre de 2009 .
- ^ "Genshi - Herramientas CherryPy - Trac". Archivado desde el original el 27 de febrero de 2012. Consultado el 26 de septiembre de 2009 .
- ^ "Una herramienta básica de CherryPy para usar plantillas Jinja". Archivado desde el original el 5 de septiembre de 2015. Consultado el 23 de septiembre de 2009 .
- ^ TurboGears 1.x utiliza CherryPy como servidor y Kid como interfaz Archivado el 22 de septiembre de 2009 en Wayback Machine.
- ^ Wiki de CherryPy sobre cómo elegir un lenguaje de plantillas Archivado el 10 de febrero de 2010 en Wayback Machine
- ^ "CherryPy - Base de conocimientos de Splunk". Archivado desde el original el 17 de noviembre de 2015. Consultado el 24 de marzo de 2015 .
Enlaces externos