Web2py

Web2py
web2py
Archivo:Web2py logo.png
Desarrollador
web2py developers
www.web2py.com
Información general
Última versión estable 1.91.6
03 de enero de 2011
Género Framework Web
Programado en Python
Sistema operativo Multiplataforma
Licencia GNU GPL v2.0 (con excepciones)
En español Sí. 

Web2py es un framework de desarrollo web de código abierto. Su objetivo principal es dar soporte al desarrollo ágil de software de aplicaciones web escalables, seguras y portables enfocadas en bases de datos. Web2py está escrito y programado en lenguaje Python. Dado que web2py fue originalmente diseñado como una herramienta de enseñanza con énfasis en la facilidad de uso y despliegue, no tiene ningún archivo de configuración a nivel de proyecto.

Web2py fue inspirado por Ruby on Rails (RoR), y como RoR se enfoca en desarrollo rápido, favoreciendo el enfoque convención sobre configuración y siguiendo el patrón Modelo Vista Controlador (MVC). A su vez, web2py está basado en Python y provee una interfaz administrativa exhaustiva, incluye bibliotecas para manejar protocolos, y puede funcionar sobre Google App Engine.

Web2py también fue inspirado por Django y, al igual que Django, tiene la habilidad de generar formularios desde tablas de la base de datos e incluye un conjunto extensivo de validadores.

Gracias a Python, web2py es menos verboso que los frameworks basados en Java, y su sintaxis tiende a ser más limpia que la de los frameworks basados en PHP. Esto hace que las aplicaciones sean más simples de desarrollar, leer y mantener.

Contenido

Visión general y características

Web2py es un framework completo ya que tiene componentes incorporados para todas las funciones principales, incluyendo:

  • Pedidos y respuestas HTTP, cookies, sesiones;
  • Múltiples protocolos[1] HTML/XML, REST, ATOM y RSS, RTF y CSV, JSON, JSON-RPC y XML-RPC, AMF-RPC (Flash/Flex), y SOAP;[2]
  • API para CRUD (altas, bajas y modificaciones) ;
  • Mecanismos múltiples de autenticación y control de accesos basados en roles;
  • Capa de abstracción de base de datos (DAL) que genera dinámicamente SQL y lo ejecuta en mútiples servidores compatbiles;
  • Cache para escalabilidad basadas en RAM, disco, y memcached;
  • Soporte para internacionalización;
  • jQuery para programación en Ajax y efectos para la interfaz de usuario;
  • Ticket: registro automático de errores con contexto.

Web2py alienta prácticas reconocidas de la ingeniería de software como

Originalmente diseñado como una herramienta de enseñaza en la universidad DePaul, web2py tiene una curva de aprendizaje muy llana. Requiere poca o ninguna instalación o configuración, y provee un entorno de desarrollo completamente basado en web.

Web2py usa la interfaz WSGI, el protocolo orientado a Python para comunicaciones entre el servidor web y las aplicaciones. También provee manejadores para protocolos CGI y FastCGI, e incluye un servidor CherryPy wsgiserver multihilo y capaz de SSL.

Web2py tiene liberaciones frecuentes y es fácil de actualizar. A pesar de frecuentes lanzamientos, los desarrolladores de web2py no han roto la compatibilidad hacia atrás desde la versión v1.0 en 2007, y se han comprometido a no romper en el futuro.

Características distintivas

Entorno de desarrollo integrado (IDE) basado en web

Todo el desarrollo puede ser realizado (opcionalmente) vía una interfaz web, sin herramientas de terceros, dentro de la misma aplicación web2py. Cada aplicación tiene una interfaz de base de datos integrada, similar a la de Django. La IDE web también incluye un editor de código, editor html para las vistas, herramienta de pruebas y una consola basada en web.

Las aplicaciones también pueden ser creadas desde la línea de comandos o desarrolladas con otras IDEs.[4]

Vistas Flexibles

El programa Hola Mundo con web2py en su forma más simple (página web simple[5] sin plantilla) se ve:

def hola():
    return 'Hola mundo'

Web2py incluye un lenguaje de plantilla rápido, basado en Python puro, sin requerimientos de Indentacion y un modelo de objeto de documento (DOM). El lenguaje de plantillas funciona sin web2py.[6] Las plantillas Joomla 1.x pueden ser convertidas a web2py.[7]

Aun controlador sin una vista automáticamente usa una vista genérica para mostrar las variables devueltas por el controlador, permitiendo desarrollar la lógica del negocio antes de escribir el HTML. El ejemplo "Hola Mundo" usando la plantilla predeterminada:

def hola():
    return dict(saludo='Hola Mundo')

Seguridad de alto nivel

Web2py tiene un foco en la seguridad prestando mecanismos predeterminados seguros, previniendo las vulnerabilidades más comunes;[8] nunca ha tenido reportes de incidentes de seguridad.

Sistema de Tiquets

Cada aplicación web2py viene con un Sistema de seguimiento de incidentes:

  • Si ocurre un error, es registrado y un ticket es generado para el usuarios. Esto permite seguimiento de errores-
  • Los errores y el código fuente son solo accesibles por el administrador, quien puede buscar y recuperar los errores por fecha o IP del cliente. El código nunca se expone al usuario.

Planificador de tareas Portable

Cron es un mecanismo para crear y ejecutar tareas recurrentes en segundo plano. Busca por un archivo crontab en el formato estándar. Hay tres modos de operación disponibles:

  • Soft cron: cron las rutinas son revisadas después de servir el contenido web, no garantiza precisión en su ejecución. (para Apache CGI/WSGI)
  • Hard cron: un hilo cron se inicia al comenzar web2py. (para Windows y CherryPy).
  • System cron: las funciones cron son llamadas desde el sistema operativo (Unix/Linux)

Protección del código fuente

Web2py puede compilar las aplicaciones web y estas pueden ser distribuidas en forma de bytecode, sin el código fuente. Esto ayuda pero no garantiza la protección del código fuente debido a la existencia de desensambladores y decompilador para Python con efectividad variada (archivos *.pyc y *.pyo)[9]

Capa de abstracción de base de datos (DAL)

Web2py implementa una DAL, no un ORM. Un ORM mapea las tablas de una base de datos en clases y los registros en instancias de estas clases. La DAL en cambio mapea, de manera transparente, las tablas en instancias de una clase (Table) y los registros en instancias (DAL Set, DAL Rows, DAL Fields). Tiene una sintaxis muy similar a un ORM pero es más rápido,[10] y puede manejar casi cualquier expresión SQL. La DAL puede ser usada sin web2py.[11]

SQLite está incluido en Python y es la base de datos de web2py por defecto. Un cambio en la cadena de conexión permite usar Firebird, IBM DB2, Informix, Ingres, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, y la Google App Engine (GAE). Especialidades:

  • Conexiones a múltiples bases de datos.
  • Creación y alteración automática de tablas.
  • Manejo automático de transacciones.
  • Transacciones distribuidas (desde web2py v1.17 con PostgreSQL,[12] [13] desde web2py v1.70.1 para Firebird y MySQL (experimental).
  • GAE no es un almacenamiento relacional, pero web2py emula ciertas operaciones.

Migraciones automáticas de esquema

Web2py soporta migración automática al cambiar la definición de una tabla, web2py la ALTERa (puede ser deshabilitado). Las migraciones, sus intentos y los cambios son registrados (logged) y documentados.

Limitaciones:

  • SQLite no entiende bien las migraciones. En particular no puede alterar el tipo de datos de una columna, simplemente almacena los nuevos valores en el nuevo tipo.
  • GAE no tiene el concepto de alterar una tabla, por lo que es limitado.

Aplicaciones

Puede encontrar muchas aplicaciones libres y gratuitas listas para usar con el código fuente completo, listas para personalizar, con varias licencias.

La mayoría en la lista de accesorios de su página principal:

Tres de ellas en otra parte:

  • PyForum, un completo sistema de foro.
  • T2, un plugin que implementa patrones de desarrollo web — registración, login, logout, grupos, accesos, adjuntos, comentarios, vistas previas, etc. —, con documentación extensiva.
  • T3, una aplicación wiki que funciona en cualquier parte, incluyendo Google App Engine. Con Superpoderes: permite al administrador definir tablas en la bases de datos y embeber código Python.

Una referencia rápida de la funcionalidad de alto nivel que fue agregada a web2py en T2 y T3: hoja de trucos T2/T3.

A su véz, existen aplicaciones de referencia realizadas con web2py (ver enlaces para mayor información):

  • web2conf: Sistema para administración de conferencias (registración, propuestas de charlas, revisiones, feedback, etc.)
  • web2py-wiki: una Wiki simple
  • web2pyhl7: una aplicación médica (salud) implementando el estándar internacional HL7

Plugins

Los "enchufables" de web2py (plugins) son funcionalidades autónomas que pueden ser agregadas a una aplicación existente. Usualmente definen componentes, por ej. objetos que pueden ser embebidos en una página y comunicarse con el servidor vía Ajax. Frecuentemente incluyen el correspondiente plugin jQuery y su funcionalidad del lado del servidor para hacerlos funcionar. En el Sitio Oficial puede encontrar varios ejemplos. La interfaz administrativa de web2py provee una interfaz web para subir y administrar los plugins. Una vez que el plugin es parte de su aplicación, puede adaptarlo sin afectar otras aplicaciones. Su apariencia puede ser adaptado por CSS.

Web2py en la web

Estos son algunos de los sitios que utilizan web2py (para ver una lista más completa):

Enlaces externos

Referencias


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Web2py — Développeurs Massimo Di Pierro et contributeurs …   Wikipédia en Français

  • Web2py — Entwickler: Massimo Di Pierro Aktuelle Version: 1.47 (27. Oktober 2008) Betriebssystem: plattformunabhängig …   Deutsch Wikipedia

  • web2py — Entwickler Massimo Di Pierro Aktuelle Version 1.99.2 (26. September 2011) …   Deutsch Wikipedia

  • Web2py — Infobox Software name = web2py caption = web2py Enterprise Web Framework developer = [http://mycti.cti.depaul.edu/people/facultyInfo mycti.asp?id=343 Massimo Di Pierro] latest release version = 1.41 latest release date = release date|2008|09|11… …   Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Список программного обеспечения, написанного на языке программирования Python — Python  стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов …   Википедия

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

  • Central Authentication Service — The Central Authentication Service (CAS) is a single sign on protocol for the web. Its purpose is to permit a user to log into multiple applications simultaneously and automatically. It also allows untrusted web applications to authenticate users …   Wikipedia

  • CherryPy — Developer(s) CherryPy team Stable release 3.2.0 / February 25, 2011; 8 months ago (2011 02 25) Written in Python …   Wikipedia

  • Django (web framework) — Django The default Django page Developer(s) Lawrence Jou …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”