Web2Py para todos

../web2py/carnet-reingart.jpg

Autor: Mariano Reingart

Analista Programador y Docente. Entusiasta del Software libre y Python, PostgreSQL y Web2Py en particular.

Blog: http://reingart.blogspot.com

Empresa: http://www.sistemasagiles.com.ar

Introducción a Web2py

Web2Py es un framework WEB (marco de trabajo / herramienta de desarrollo) de muy fácil uso y aprendizaje, inicialmente pensado con fines educativos, incluye las últimas tecnologías de una forma simple y clara (MVC, ORM, plantillas, javascript, ajax, css, etc.) que lo convierten en una solución completamente funcional para crear aplicaciones web 2.0 de manera totalmente interactiva (diseño y programación por el navegador web!).

En nuestra humilde opinión, Web2Py hace al desarrollo web rápido, fácil y más eficiente, permite enfocarse en la lógica del negocio y no en temas técnicos triviales o esotéricos. A grandes rasgos, sus puntos más sobresalientes son:

  • Instalación muy simple, prácticamente sin configuración (tanto de forma independiente y mod_wsgi)
  • Intuitivo y con curva de aprendizaje muy baja, ideal para ser enseñado en el aula para niveles principiantes
  • Su capa de abstracción a la base de datos (DAL) permite definir tablas sin necesidad de clases complejas (que pueden ser extendidas luego con campos virtuales, similar a un ORM), y su lenguaje de consulta es muy cercano a SQL otorgando gran poder declarativo y flexibilidad, en Python.
  • Estructura sólida todo-incluido, incluyendo ajax, menús, formularios, caching, GAE, servicios web (JSON, XML_RPC, AMF, SOAP), tareas programadas, etc. Su diseño integrado, limpio y seguro previene los problemas y dificultades más comunes del desarrollo web
  • Altamente pythónico: modelos, vistas y controladores dinámicos, simples, claros y explícitos, con un lenguaje de plantillas programable con Python, ayudantes HTML y mapeo bidireccional de URL por patrones avanzados.
  • Sin complicaciones de línea de comandos, incluso incluye un entorno integrado de desarrollo y herramientas de administración totalmente en línea, con un editor de código y html web, sistema de tickets de error, subida de archivos, etc.

En este primer artículo veremos las características generales e instalación, posteriormente la intención es ir recorriendo y desarrollando las funcionalidades de la herramienta: el modelo, los controladores, las vistas, autenticación, formularios y ABM, ajax, etc.

Instalación de Web2Py

Web2py viene empaquetado para varios sistemas operativos, por lo que su instalación es muy simple, y su filosofía "baterías incluidas" hace que prácticamente no tengamos que descargar o instalar otras dependencias (bibliotecas o paquetes)

Windows

Para el sistema operativo Windows, encontraremos un paquete comprimido con todo lo necesario, simplemente seguir las siguientes instrucciones para tener web2py funcionando:

  • Descargar el paquete todo-en-uno web2py_win.zip
  • Descomprimirlo
  • Ejecutar (doble click) en web2py.exe

Mac

La instalación para Mac es muy similar a Windows, con un paquete comprimido web2py_osx.zip. Solo hay que descomprimirlo y ejecutar web2py.app para lanzar el programa.

GNU/Linux

Por el momento no existen paquetes para las distintas distribuciones de GNU/Linux, ya que en la mayoría de los casos se puede ejecutar simplemente desde el código fuente, dado que Python y las dependencias principales generalmente están preinstaladas en estos entornos.

Para usar web2py desde el código fuente, se pueden realizar los siguientes pasos:

  • Instalar las dependencias (python y conectores a la base de datos)
  • Descargar el código fuente web2py_src.zip
  • Descomprimir
  • Ejecutar python web2py.py

Como ejemplo para Ubuntu (o Debian), abrir una consola y ejecutar:

sudo apt-get install python-psycopg2
wget http://www.web2py.com/examples/static/web2py_src.zip
unzip web2py_src.zip
cd web2py
python web2py.py

Breve Recorrida

A continuación mostraremos un pantallazo rápido sobre las características principales de web2py.

Nota: Los links solo funcionan si está web2py funcionando en la máquina local, puerto 8000 (configuración por defecto).

Importante: El idioma de las páginas web varían de acuerdo a la configuración del navegador (disponible: Ingles, Español, Portugues, etc.)

Arranque

Al ejecutar web2py nos mostrará la pantalla de inicio mientras cargue e inicie el programa:

http://www.web2py.com.ar/wiki/static/img/bienvenida.png

Luego aparecerá la pantalla del servidor web para desarrollo que web2py trae incorporado. Para iniciarlo deberemos elegir y ingresar una contraseña de administrador propia (por ej. 'abc') y presionar start:

http://www.web2py.com.ar/wiki/static/img/server.png

Bienvenida

Al iniciar el servidor, web2py lanzará un explorador con la página de bienvenida predeterminada:

http://www.web2py.com.ar/wiki/static/img/welcome.png

Esta página es la aplicación predeterminada, un "esqueleto" que se usa cuando creamos aplicaciones en web2py.

Básicamente tenemos varios enlaces a la interfaz administrativa, documentación y ejemplos interactivos; y una breve descripción sobre la página que estamos viendo:

  • Visitó la URL .../default/index
  • Que llamó la función index() ubicada en el archivo .../controllers/default.py
  • La salida de este archivo es un diccionario que ha sido renderizado por la vista .../views/default/index.html

Interfaz Administrativa

Una vez que tenemos web2py funcionando y vemos la página de inicio, podemos empezar a crear y editar nuestras aplicaciones web, dirigiéndonos a la interfaz administrativa:

http://www.web2py.com.ar/wiki/static/img/admin0.png

En dicha página, se debe ingresar la contraseña previamente escogida en los pasos previos para poder acceder, y se abrirá un índice con las aplicaciones instaladas en esta instancia:

http://www.web2py.com.ar/wiki/static/img/admin1.png

Aquí podríamos crear nuevas aplicaciones, subir o descargar aplicaciones ya realizadas, editar código fuente, páginas html, subir archivos estáticos o traducir los mensajes, revisar los errores, etc. Todos estos temas los iremos tratando en sucesivos artículos.

En este caso, vamos a ingresar a la aplicación predeterminada welcome (bienvenida), presionando el enlace EDIT (editar):

http://www.web2py.com.ar/wiki/static/img/admin2.png

Y allí, por ejemplo, podemos modificar el código fuente del controlador principal (default.py) presionando en el link edit (editar):

http://www.web2py.com.ar/wiki/static/img/admin3.png

Los enlaces superiores nos permiten editar rápidamente las plantillas html relacionadas y probar las funcionalidades expuestas.

Podemos ver que el código del hola mundo es muy simple, tenemos la función index (que se ejecuta por defecto al ingresar a la aplicación), donde se establece el mensaje intermitente "Bienvenido a Web2Py" y se devuelve un diccionario con una variable mensaje='Hola Mundo' que se usará para generar la página web:

def index():
  """
  acción ejemplo usando el operador de internacionalización T y mensaje flash
  renderizado por views/default/index.html o views/generic.html
  """
  response.flash = T('Welcome to web2py')
  return dict(message=T('Hello World'))

Cabe destacar que este es todo el código es el que se usa en la función para generar la página web, no es obligatorio ejecutar scripts de gestión, modificar archivos de configuración, mapear URL con expresiones regulares y/o importar varios módulos, web2py se encarga de todos estos temas por nosotros.

Por el momento terminaremos aquí, ya que la idea era mostrar una breve introducción a la herramienta. En artículos posteriores veremos de retomar y continuar con temas más avanzados.

Para los usuarios que deseen seguir experimentando con esta herramienta, aconsejamos seguir los ejemplos interactivos: http://www.web2py.com.ar/examples/default/examples, donde se analizan, con pequeños segmentos de código, las características principales del framework.

Resumen:

En este artículo hemos introducido a Web2Py, una potente herramienta para programar sitios web de forma rápida y simple. La idea es ir profundizando y ampliando cada tema con más detalle en artículos posteriores.

A nuestro entender, es una muy buena opción para comenzar con el desarrollo web sin perder de vista poder realizar en un futuro aplicaciones avanzadas.

Como consejo, recomendamos suscribirse al grupo de usuarios en español , donde podrán realizar consultas y revisar las novedades y nuevas actualizaciones, ya que web2py avanza rápido incluyendo muchas funcionalidades nuevas en cada versión.

Recursos:

Versión en PDF. | Versión en reSt.

Help PET: Donate

blog comments powered by Disqus

Último cambio: Tue Aug 17 09:46:16 2010.  -  Esta revista está bajo una licencia Creative Commons.