Pylons Project es una organización de código abierto que desarrolla un conjunto de tecnologías de aplicaciones web escritas en Python . Inicialmente, el proyecto era un único marco web llamado Pylons, pero después de la fusión con el marco repoze.bfg bajo el nuevo nombre Pyramid, el Proyecto Pylons ahora consta de múltiples tecnologías de aplicaciones web relacionadas.
Pyramid es un framework web de código abierto escrito en Python y basado en WSGI . Es un framework web minimalista inspirado en Zope , Pylons y Django . [3]
Originalmente llamado "repoze.bfg", Pyramid atrajo la atención principalmente en la comunidad Zope [4] y Plone cuando el proyecto KARL del Open Society Institute migró de Plone a BFG. [5] En 2010 se anunció que el marco Pylons pasaría a utilizar BFG como base en la versión 1.5. [6] Como resultado de la inclusión de BFG en el proyecto Pylons, BFG pasó a llamarse Pyramid. [7]
Pyramid es un framework web minimalista e independiente de la plataforma . Es independiente de la persistencia y está integrado tanto con bases de datos SQL a través de SQLAlchemy como con Zope Object Database , así como con otras bases de datos NoSQL , como CouchDB . [3]
Pyramid permite a los desarrolladores definir rutas mediante expresiones regulares que se asignan a objetos. Al igual que su marco de trabajo Zope, Pyramid también permite la navegación jerárquica de objetos, donde cada parte de una URL es un objeto que contiene otros objetos, de una manera similar a las carpetas en un sistema de archivos. [8]
Pylons Framework es un framework de código abierto para aplicaciones web escrito en Python . Hace un uso extensivo del estándar Web Server Gateway Interface para promover la reutilización y separar la funcionalidad en módulos distintos. [11] Está fuertemente influenciado por Ruby on Rails : dos de sus componentes principales, Routes y WebHelpers, son reimplementaciones de Python de las características de Rails.
Pylons es bien conocido por tener una pila casi completa de herramientas de terceros, evitando el fenómeno "no inventado aquí" .
El método de instalación oficial de Pylons es a través de EasyInstall mediante el índice de paquetes de Python (PyPI), y la mayoría de las herramientas adicionales se instalan normalmente de la misma manera. EasyInstall también se encarga de las dependencias de los paquetes cuando es relevante. Algunas distribuciones también podrían empaquetar Pylons y Paste , pero es probable que los paquetes de cualquier distribución queden rezagados con respecto a la distribución oficial. Pylons también se puede instalar a mano renombrando su archivo .egg a .zip y extrayendo el contenido.
Paste se utiliza para la configuración, prueba e implementación de proyectos. Al utilizar el formato de configuración INI común , Paste permite múltiples "perfiles", de modo que los desarrolladores puedan ejecutar configuraciones de desarrollo e implementación desde la misma base de código sin revelar partes confidenciales de Pylons, como el depurador interactivo, a los usuarios de producción.
Actualmente, el único despachador de URL ampliamente utilizado para Pylons es Routes, una reimplementación de Python del despachador de URL de Ruby on Rails, aunque se puede utilizar cualquier despachador de URL compatible con WSGI. Si bien Routes es una biblioteca independiente, se desarrolló para su uso en Pylons y su desarrollo se mantiene en estrecha sincronía con Pylons.
Otra pieza de Rails adaptada para Pylons es WebHelpers, que proporciona mapeo de URL basado en la configuración de Routes. WebHelpers también proporciona algunas funciones de utilidad para generar código JavaScript haciendo uso de las bibliotecas script.aculo.us y Prototype .
FormEncode y FormBuild se utilizan para la generación y validación de formularios HTML; ha habido algún uso de Mako para la generación de formularios utilizando el modelo de herencia de Mako.
Myghty era el lenguaje de plantillas predeterminado de Pylons, pero a partir de la versión 0.9.6 ha sido reemplazado por Mako . [12] Ambos lenguajes de plantillas están basados en texto (a diferencia de XML ) y admiten herencia e incrustación de código Python arbitrario.
Debido a que las capas de Pylons están acopladas de forma flexible, también se pueden utilizar otros lenguajes de plantillas. Genshi , un lenguaje de plantillas basado en XML, se puede utilizar en lugar de Mako o Myghty. [13]
Pylons no tiene una biblioteca de base de datos predeterminada. Se sabe que se utilizan tanto SQLObject como SQLAlchemy.
Pylons se ha convertido en el Proyecto Pylons, y el código antiguo de Pylons 1.0 ahora está en modo de solo mantenimiento. Sin embargo, de acuerdo con la fusión del proyecto con repoze.bfg desde noviembre de 2010, las versiones más nuevas de Pylons son en realidad diferentes del Pylons 1.0 original. Los desarrolladores de Pylons inicialmente planearon reescribir ciertas partes del código, pero observaron que el nuevo código se aproximaba a repoze.bfg, lo que llevó a la fusión de Pylons y repoze.bfg. [14] [15] Esto llevó a que repoze.bfg (una parte del marco web basado en Python Repoze) cambiara de nombre y se relanzara como el marco web Pyramid. [16]