Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Wiki Django - Odt
Wiki Django - Odt
conocido como Model Template View. Fue desarrollado en origen para gestionar arias p!ginas orientadas
a noticias de la "orld #ompany de $awrence, %ansas, y fue liberada al p&blico ba'o una licencia ()* en
'ulio de+,,-. el framework fue nombrado en alusin al guitarrista de 'a// gitano *'ango 0einhardt.
1n 'unio del +,,2 fue anunciado que la reci3n formada *'ango )oftware Foundation se har4a cargo de
*'ango en el futuro.
$a meta fundamental de *'ango es facilitar la creacin de sitios web comple'os. *'ango pone 3nfasis en el
re5uso, la conectiidad y e6tensibilidad de componentes, el desarrollo r!pido y el principio 7o te
repitas 8*09, del ingl3s Don't Repeat Yourself:. Python es usado en todas las partes del framework,
incluso en configuraciones, archios, y en los modelos de datos.
Visin general y caractersticas[editar]
;l igual que 0uby on 0ails, otro popular framework de cdigo abierto, *'ango se us en produccin
durante un tiempo antes de que se liberara al p&blico. fue desarrollado por ;drian <oloaty, )imon
"illison, =acob %aplan5Moss y "ilson Miner mientras traba'aban en "orld >nline, y originalmente se
utili/ para administrar tres sitios web de noticias? The $awrence =ournal5
"orld, lawrence.com y %@sports.com.
$os or4genes de *'ango en la administracin de p!ginas de noticias son eidentes en su diseAo, ya que
proporciona una serie de caracter4sticas que facilitan el desarrollo r!pido de p!ginas orientadas a
contenidos. Por e'emplo, en lugar de requerir que los desarrolladores escriban controladores y istas para
las !reas de administracin de la p!gina, *'ango proporciona una aplicacin incorporada para administrar
los contenidos, que puede incluirse como parte de cualquier p!gina hecha con *'ango y que puede
administrar arias p!ginas hechas con *'ango a partir de una misma instalacin. la aplicacin
administratia permite la creacin, actuali/acin y eliminacin de ob'etos de contenido, lleando un
registro de todas las acciones reali/adas sobre cada uno, y proporciona una interfa/ para administrar los
usuarios y los grupos de usuarios 8incluyendo una asignacin detallada de permisos:.
$a distribucin principal de *'ango tambi3n aglutina aplicaciones que proporcionan un sistema de
comentarios, herramientas para sindicar contenido ia 0)) yBo;tom, Cp!ginas planasC que permiten
gestionar p!ginas de contenido sin necesidad de escribir controladores o istas para esas p!ginas, y un
sistema de redireccin de @0$s.
>tras caracter4sticas de *'ango son?
@n mapeador ob'eto5relacional.
;plicaciones CenchufablesC que pueden instalarse en cualquier p!gina gestionada con *'ango.
@na ;PD de base de datos robusta.
@n sistema incorporado de Cistas gen3ricasC que ahorra tener que escribir la lgica de ciertas tareas
comunes.
@n sistema e6tensible de plantillas basado en etiquetas, con herencia de plantillas.
@n despachador de @0$s basado en e6presiones regulares.
@n sistema CmiddlewareC para desarrollar caracter4sticas adicionales. por e'emplo, la distribucin principal
de *'ango incluye componentes middleware que proporcionan cacheo, compresin de la
salida, normali/acin de @0$s, proteccin #)0F y soporte de sesiones.
)oporte de internacionali/acin, incluyendo traducciones incorporadas de la interfa/ de administracin.
*ocumentacin incorporada accesible a tra3s de la aplicacin administratia 8incluyendo documentacin
generada autom!ticamente de los modelos y las bibliotecas de plantillas aAadidas por las aplicaciones:.
Arquitectura[editar]
;unque *'ango est! fuertemente inspirado en la filosof4a de desarrollo Modelo Vista #ontrolador, sus
desarrolladores declaran p&blicamente que no se sienten especialmente atados a obserar estrictamente
ning&n paradigma particular, y en cambio prefieren hacer Clo que les parece correctoC. #omo resultado, por
e'emplo, lo que se llamar4a CcontroladorC en un CerdaderoC framework MV# se llama en *'ango CistaC, y
lo que se llamar4a CistaC se llama CplantillaC.
Eracias al poder de las capas mediator y foundation, *'ango permite que los desarrolladores se dediquen
a construir los ob'etos 1ntity y la lgica de presentacin y control para ellos.
Presentacin[editar]
;qu4 se mane'a la interaccin entre el usuario y el computador. 1n *'ango, 3sta tarea la reali/an
el template engine y el template loader que toman la informacin y la presentan al usuario 84a <TM$, por
e'emplo:. 1l sistema de configuracin de @0$s es tambi3n parte de la capa de presentacin...
Control[editar]
1n esta capa reside el programa o la lgica de aplicacin en s4. 1n *'ango son representados por las
iews y manipulators. $a capa de presentacin depende de 3sta y a su e/ 3sta lo hace de la capa de
dominio.
Mediator[editar]
1s el encargado de mane'ar la interaccin entre el subsistema 1ntity y foundation. ;qu4 se reali/a el
mapeo ob'eto5relacional a cargo del motor de *'ango.
Entity[editar]
1l subsistema entity mane'a los ob'etos de negocio. 1l mapeo ob'eto5relacional de *'ango permite escribir
ob'etos de tipo entity de una forma f!cil y est!ndar.
Foundation[editar]
$a principal tarea del subsistema foundation es la de mane'ar a ba'o niel el traba'o con la base de datos.
)e proee soporte a niel de foundation para arias bases de datos y otras est!n en etapa de prueba.
Soporte de bases de datos[editar]
0especto a la base de datos, la recomendada es Postgre)F$, pero tambi3n son
soportadas My)F$ y )F$ite G. )e encuentra en desarrollo un adaptador para Microsoft )F$ )erer. @na
e/ creados los data models, *'ango proporciona una abstraccin de la base de datos a tra3s de su ;PD
que permite crear, recuperar, actuali/ar y borrar ob'etos. Tambi3n es posible que el usuario e'ecute sus
propias consultas )F$ directamente. 1n el modelo de datos de *'ango, una clase representa un registro
de una tabla en la base de datos y las instancias de esta ser!n las filas en la tabla.
Soporte de servidores Web[editar]
#omo mencionamos en los requisitos, *'ango incluye un seridor web liiano para reali/ar pruebas y
traba'ar en la etapa de desarrollo. 1n la etapa de produccin, sin embargo, se recomienda ;pache
+ con modHpython. ;unque *'ango soporta la especificacin ")ED, por lo que puede correr sobre una
gran ariedad de seridores como Fast#ED o )#ED en ;pache u otros seridores
8particularmente $ighttpd:.
Requerimientos[editar]
*'ango requiere Python +.- o superior. 7o se necesitan otras bibliotecas de Python para poder obtener
una funcionalidad b!sica. 1n un entorno de desarrollo Iespecialmente si queremos e6perimentar con
*'angoJno necesitamos un web serer instalado, ya que *'ango trae su propio seridor liiano para 3ste
propsito, con la restriccin de solo permitir un usuario a la e/..
(ase de datos Postgre)F$, My)F$, >racle o )F$ite.
Otros aspectos[editar]
Inconsistencias entre la nomenclatura Django y el patrn MVC[editar]
*'ango aparenta implementar el patrn MV#, pero el controlador es llamado ista y la ista template.
Primero, debemos aclarar que al momento de diseAar *'ango, no se busc apegarse a nada en particular,
sino desarrollar una herramienta que funcione lo me'or posible.
)i bien es cierto que se aseme'a mucho a la implementacin del patrn MV#, para *'ango la Vista
describe Kqu3L datos ser!n presentados y no KcmoL se er!n los mismos. ;qu4 es donde entran en 'uego
los templates, que describen Kcmo los datos son presentadosL.
)e dice que el KcontrollerL de un MV# cl!sico est! representado por el propio framework. 1s decir, el
sistema que en4a un request a la ista correspondiente, de acuerdo a la configuracin de @0$ de *'ango
8archio de configuracin:.
1n el caso de querer hacer una correspondencia, entonces dir4amos que 3ste es un framework KMTV:
modelo, template, vista.
Proceso de un request[editar]
Teniendo la arquitectura en cuenta, eremos a grandes rasgos como se procesa un request.
#uando *'ango recibe un request, lo primero que se hace es crear un ob'eto <ttp0equest que la
representa y serir! como abstraccin para traba'ar sobre diferentes seridores.
$uego se reali/a la resolucin de la @0$. 1sto consiste en seleccionar la funcin del iew 8a partir de la
@0$ especificada en el request: que participar! en la creacin del response.
@na e/ que hemos resuelto que funcin resoler! la @0$ especificada, se inoca a la funcin del iew
con el ob'eto request como primer par!metro. ;qu4 se reali/a el traba'o pesado como? consultas a la (**,
carga de templates y generacin de <TM$. )e deuele un ob'eto <TTP response o una e6cepcin.
Middleware[editar]
*'ango proee tres puntos diferentes en los que permite e'ecutar clases middleware, preiamente
definidas en el archio de configuracin. @na misma clase puede e'ecutarse en m!s de un punto, estas
son las opciones?
equest middleware
)e e'ecuta despu3s de crear el ob'eto <ttp0equest, pero antes de resoler la @0$, permitiendo modificar
el ob'eto request o deoler un respuesta propia antes de que el resto de la aplicacin e'ecute.
View middleware
1s e'ecutado despu3s de la resolucin de la @0$, pero antes de e'ecutar la ista correspondiente. Permite
e'ecutar operaciones antes y despu3s de la e'ecucin de la ista. $a ista podr4a llegar a no e'ecutarse en
absoluto.
esponse middleware
)e e'ecuta al final, despu3s de que el ob'eto response haya sido creado y antes de entregarlo al cliente.
@tili/ado para reali/ar las modificaciones finales.