martes, 7 de septiembre de 2010

Framework o Herramienta para desarrollo web: Django


Tratando de encontrar algo en que apoyarme para trabajar con el proyecto de medio curso, encontre ésto, que es como una herramienta para el desarrollo web y se basa en el lenguaje Python y además hace posible que no necesites de librerias para crear algo sencillo.

Ojalá les sirva de algo para su proyecto.


Django es un framework de desarrollo web de código abierto, escrito en Python, que cumple en cierta medida el paradigma del Modelo Vista Controlador. Fue desarrollado en origen para gestionar varias páginas orientadas a noticias de la World Company de Lawrence, Kansas, y fue liberada al público bajo una licencia BSD en julio de 2005; el framework fue nombrado en alusión al guitarrista de jazz gitano Django Reinhardt En Junio del 2008 fue anunciado que la recién formada Django Software Foundation se hará cargo de Django en el futuro. La versión estable (a mayo de 2010) es la 1.2.
La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, del desarrollo rápido y del principio de DRY (del inglés Don't Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos.

Visión general y características

Al igual que Ruby on Rails, otro popular framework de código abierto, Django se usó en producción durante un tiempo antes de que se liberara al público; fue desarrollado por Adrian Holovaty, Simon Willison, Jacob Kaplan-Moss y Wilson Miner mientras trabajaban en World Online, y originalmente se utilizó para administrar tres sitios web de noticias: The Lawrence Journal-World, lawrence.com y KUsports.com.
Los orígenes de Django en la administración de páginas de noticias son evidentes en su diseño, ya que proporciona una serie de características que facilitan el desarrollo rápido de páginas orientadas a contenidos. Por ejemplo, en lugar de requerir que los desarrolladores escriban controladores y vistas para las áreas de administración de la página, Django proporciona una aplicación incorporada para administrar los contenidos, que puede incluirse como parte de cualquier página hecha con Django y que puede administrar varias páginas hechas con Django a partir de una misma instalación; la aplicación administrativa permite la creación, actualización y eliminación de objetos de contenido, llevando un registro de todas las acciones realizadas sobre cada uno, y proporciona una interfaz para administrar los usuarios y los grupos de usuarios (incluyendo una asignación detallada de permisos).
La distribución principal de Django también aglutina aplicaciones que proporcionan un sistema de comentarios, herramientas para sindicar contenido via RSS y/o Atom, "páginas planas" que permiten gestionar páginas de contenido sin necesidad de escribir controladores o vistas para esas páginas, y un sistema de redirección de URLs.
Otras características de Django son:
  • Un mapeador objeto-relacional.
  • Aplicaciones "enchufables" que pueden instalarse en cualquier página gestionada con Django.
  • Una API de base de datos robusta.
  • Un sistema incorporado de "vistas genéricas" que ahorra tener que escribir la lógica de ciertas tareas comunes.
  • Un sistema extensible de plantillas basado en etiquetas, con herencia de plantillas.
  • Un despachador de URLs basado en expresiones regulares.
  • Un sistema "middleware" para desarrollar características adicionales; por ejemplo, la distribución principal de Django incluye componentes middleware que proporcionan cacheo, compresión de la salida, normalización de URLs, protección CSRF y soporte de sesiones.
  • Soporte de internacionalización, incluyendo traducciones incorporadas de la interfaz de administración.
  • Documentación incorporada accesible a través de la aplicación administrativa (incluyendo documentación generada automáticamente de los modelos y las bibliotecas de plantillas añadidas por las aplicaciones).

Presentación

Aquí se maneja la interacción entre el usuario y el computador. En Django, ésta tarea la realizan el template engine y el template loader que toman la información y la presentan al usuario (vía HTML, por ejemplo). El sistema de configuración de URLs es también parte de la capa de presentación...

Soporte de bases de datos

Respecto a la base de datos, la recomendada es PostgreSQL, pero también son soportadas MySQL y SQLite 3. Se encuentra en desarrollo un adaptador para Microsoft SQL Server. Una vez creados los data models, Django proporciona una abstracción de la base de datos a través de su API que permite crear, recuperar, actualizar y borrar objetos. También es posible que el usuario ejecute sus propias consultas SQL directamente. En el modelo de datos de Django, una clase representa una tabla en la base de datos y las instancias de esta serán las filas en la tabla.

Soporte de servidores Web

Como mencionamos en los requisitos, Django incluye un servidor web liviano para realizar pruebas y trabajar en la etapa de desarrollo. En la etapa de producción, sin embargo, se recomienda Apache 2 con mod_python. Aunque Django soporta la especificación WSGI, por lo que puede correr sobre una gran variedad de servidores como FastCGI o SCGI en Apache u otros servidores (particularmente Lighttpd).

Requerimientos

Django requiere Python 2.3 o superior. No se necesitan otras bibliotecas de Python para poder obtener una funcionalidad básica. En un entorno de desarrollo –especialmente si queremos experimentar con Django—no necesitamos un web server instalado, ya que Django trae su propio servidor liviano para éste propósito.
Base de datos PostgreSQL, MySQL, Oracle o SQLite.


----------------------------------------------------------------------------------------------

* Les dejo el link de donde saqué la información: Django

* Tutoriales sobre Django Tutorial 1 (básico)   Tutorial 2 (algo mas avanzado)
    **si el primero no sale en español y no lo entienden, traduzcan la pagina con el traductor de google

* La pagina del libro Djangobook.com