Está en la página 1de 4

Django es un framework de desarrollo web de cdigo abierto, escrito en Python, que respeta el paradigma

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.

También podría gustarte