TurboGears - Descripción general
¿Qué es Web Framework?
Web Application Framework o simplemente Web Framework representa una colección de bibliotecas y módulos, que permite a un desarrollador de aplicaciones web escribir aplicaciones, sin tener que preocuparse por detalles de bajo nivel como protocolos, administración de subprocesos, etc.
¿Qué es TurboGears?
TurboGears es un marco de aplicación web escrito en Python. Creada originalmente por Kevin Dangoor en 2005, su última versión TurboGears (ver 2.3.7) es administrada por un grupo de desarrolladores liderados por Mark Ramm y Florent Aide.
TurboGears sigue el paradigma Modelo-Vista-Controlador al igual que la mayoría de los marcos web modernos como Rails, Django, Struts, etc.
Controlador de vista de modelo
MVC es un patrón de diseño de software para desarrollar aplicaciones web. Un patrón de controlador de vista de modelo se compone de tres partes:
Model - El nivel más bajo del patrón es responsable de mantener los datos.
View - Este es responsable de mostrar todos o una parte de los datos al usuario.
Controller - Código de software que controla las interacciones entre el modelo y la vista.
MVC es popular porque aísla la lógica de la aplicación de la capa de interfaz de usuario y admite la separación de preocupaciones. Aquí, el controlador recibe todas las solicitudes de la aplicación y luego trabaja con el modelo para preparar los datos necesarios para la vista. La Vista luego usa los datos preparados por el Controlador para generar una respuesta presentable final. La abstracción MVC se puede representar gráficamente de la siguiente manera:
El modelo
El Modelo se encarga de gestionar los datos de la aplicación. Responde a la solicitud de la vista y también responde a las instrucciones del controlador para actualizarse.
La vista
Una presentación de datos en un formato particular, provocada por la decisión de un controlador de presentar los datos. Son sistemas de plantillas basados en scripts muy fáciles de integrar con la tecnología AJAX.
El controlador
El controlador es responsable de responder a la entrada del usuario y realizar interacciones en los objetos del modelo de datos. El Contralor recibe la entrada, valida la entrada y luego realiza la operación comercial que modifica el estado del modelo de datos.
TurboGears está construido sobre una serie de bibliotecas y herramientas. Estas herramientas han cambiado entre diferentes versiones de TurboGears. Los componentes de la versión actual (ver 2.3.7) se enumeran a continuación.
SQLAlchemy
Es un kit SQL de código abierto que proporciona mapeo de relaciones de objetos (ORM) para código Python.
Genshi
Este motor de plantillas se utiliza para construir el front-end de las aplicaciones TG. Un sistema de plantillas web combina una plantilla con una determinada fuente de datos para representar páginas web dinámicas.
ToscaWidgets
Es una biblioteca de widgets para generar formularios HTML con controles del lado del servidor. Tosca también actúa como middleware para conectarse con widgets y kits de herramientas de JavaScript.
Caja de cambios
Proporciona un conjunto de comandos para administrar proyectos y aplicaciones de servidor TurboGears. Las aplicaciones TurboGears se pueden implementar en cualquier servidor web compatible con WSGI.
La Interfaz de puerta de enlace del servidor web (WSGI) se ha adoptado como estándar para el desarrollo de aplicaciones web Python. WSGI es una especificación para la interfaz universal entre el servidor web y las aplicaciones web. El paquete wsgiref es una implementación de referencia de WSGI. Se utiliza para agregar soporte WSGI al marco web de TurboGears web. El módulo simple_server de este paquete implementa un servidor HTTP simple que sirve aplicaciones WSGI. Lo usaremos para probar aplicaciones desarrolladas durante este tutorial.