SlideShare una empresa de Scribd logo
1 de 31
6/26/2015 1Programación Web
Ing. George Navarro Gómez
6/26/2015Programación Web 2
Introducción
El crecimiento de Python es cada vez mayor y se ha hecho
mas notorio en los últimos años con la aparición de
herramientas que hacen el trabajo mas simple y eficiente con
este lenguaje de programación.
Una de estas herramientas es DJANGO, el framework hecho
en python para perfeccionistas.
Aparte de las ventajas que tiene por ser framework, Django
promueve el desarrollo rápido: se construyen aplicaciones en
cuestión de días y con el conocimiento suficiente esos días se
pueden reducir a horas.
6/26/2015Programación Web 3
Django
• Es un framework web de código abierto escrito en Python
que permite construir aplicaciones web mucho más rápido
y con menos código.
• Impulsa el desarrollo de código limpio al promover buenas
prácticas de desarrollo web.
• Se centra en automatizar todo lo posible y se adhiere al
principio DRY (Don’t Repeat Yourself).
• Usa una modificación de la arquitectura Modelo-Vista-
Controlador (MVC) llamada MTV(Model-Template-View),
ésta forma de trabajar permite que sea pragmático.
6/26/2015Programación Web 4
Origen de Django
Nace como un proyecto para publicación de noticias de
Lawrence Journal World. Inicialmente desarrollado para
gestionar aplicaciones web de páginas orientadas a noticias
de World Online, luego se liberó bajo licencia BSD.
Fue construido desde el inicio como una herramienta para
resolver problemas reales en un entorno empresarial
Fue diseñado para optimizar el tiempo de desarrollo y los
requerimientos exigentes de los desarrolladores web
El nombre de Django es en honor al famoso músico francés
Django Reinhardt.
6/26/2015Programación Web 5
Quienes usan Django
• dpaste.com
• The Washington Post
• Bitbucket.org
• Disqus
• Instagram
• Pinterest
• michaelmoore.com
• Theguardian
• Lawrence.com
• The New York Times
• Fluendo
• djangosites
6/26/2015Programación Web 6
Descarga
e
Instalación
6/26/2015Programación Web 7
Tendencia Desarrollo Web
6/26/2015Programación Web 8
Modelo MVT - Django
6/26/2015Programación Web 9
el MODELO
• Define los datos almacenados
• Se encuentran en forma de clases de Python
• Cada tipo de dato que debe ser almacenado se
encuentra en una variable con ciertos parámetros,
posee métodos también.
• Todo esto, permite indicar y controlar el
comportamiento de los datos.
6/26/2015Programación Web 10
la VISTA
• Se presenta en forma de funciones de Python
• Su propósito es determinar qué datos serán visualizados y otros
aspectos relacionados.
• El ORM de Django permite escribir código Python en lugar de
SQL para hacer las consultas que necesita la vista.
• Se encarga también de tareas conocidas como: envio de
correos automáticos, autenticación con servicios externos y
validación de datos de formularios.
Nota: Importante destacar que la vista no tiene nada que ver con
el estilo de la presentación de los datos, solo se encarga de los
datos, la presentación es tarea de la plantilla.
6/26/2015Programación Web 11
la PLANTILLA
• Es básicamente una página HTML con algunas etiquetas propias
de Django. No solamente crea contenido HTML, también XML,
CSS, Javascript, CSV, etc.
• Recibe los datos de la vista y los organiza para la presentación al
navegador web.
• Las etiquetas que usa Django para las plantillas permiten que sea
flexible para los diseñadores del frontend, incluso tiene
estructuras de control como: if ó or; por si es necesaria una
presentación lógica de los datos, estas estructuras son limitadas
para evitar un desorden poniendo cualquier tipo de código
Python.
Esto permite que la lógica del sistema siga estando en la Vista.
6/26/2015Programación Web 12
Configuración de Rutas
Django posee un mapeo de URLs que permite controlar el
despliegue de las vistas, ésta configuración es conocida como
URLConf.
Consiste en leer la URL que el usuario solicitó, encontrar la vista
apropiada para la solicitud y pasar cualquier variable que la vista
necesite para completar su trabajo.
El URLConf está construido con expresiones regulares en Python y
sigue su filosofía: Explícito es mejor que implícito.
Este URLConf permite que las rutas que maneje Django sean
agradables y entendibles para el usuario.
6/26/2015Programación Web 13
Archivos Predeterminados
Archivos del Proyecto
• __init__.py : Archivo vacío que le dice a Python que debe
considerar este directorio como un paquete de Python.
• manage.py : Contiene una porción de código que permite
interactuar con el proyecto de Django de muchas formas.
• settings.py : Contiene todas las configuraciones para el
proyecto.
• urls.py : Contiene todas las rutas que están disponibles en el
proyecto
Archivos de la aplicación
• __init__.py : La misma descripción anterior.
• models.py : Se declaran las clases del modelo.
• views.py : Se declaran las funciones de la vista.
• admin.py : Se genera un interface de administración ágil.
6/26/2015Programación Web 14
EL MODELO DE DATOS
6/26/2015Programación Web 15
EL MODELO
• Un modelo es la representación de los datos de nuestra
aplicación.
• Contiene los campos básicos y el comportamiento de los datos
que serán almacenados.
• Por lo general, cada modelo se convierte en una tabla de la
base de datos.
• Cada modelo es una subclase de django.models.Model
• Cada atributo de un modelo representa a un campo de la tabla
• Django automáticamente nos da acceso a la base de datos.
6/26/2015Programación Web 16
El shell de Django
• Los modelos nos permiten manipular los datos: registrarlos,
editarlos, eliminarlos, consultarlos y realizar procesos con ellos.
• Estas manipulaciones (generalmente consultas) se reflejarán en
las vistas y posteriormente en las plantillas para mostrar los
resultados en el navegador.
• Las consultas en base a los modelos de Django son la base de
todo el desarrollo en este framework.
El shell
Interprete interactivo de Python, que permitirá probar los modelos,
hacer consultas, analizar resultados, antes de elaborar las vistas. Es
muy útil si queremos ahorrar tiempo al momento de responder a los
requerimientos que los usuarios de la aplicación puedan necesitar.
Nota: Para acceder al shell, se abre un terminal en la carpeta donde esta
el proyecto y digitamos: python manage.py shell o si se usa algun IDE,
generalmente se encuentra en una de las opciones del menú.
6/26/2015Programación Web 17
Notas importantes - Modelos
• La salida exacta variará dependiendo de la base de datos usada.
• Los nombres de las tablas son generadas automáticamente
combinando el nombre de la aplicación y el nombre en minúsculas del
modelo.
• Las claves primarias (los IDs) se agregan automáticamente.
• Por convención, Django anexa "_id" al campo de la clave foránea.
• La relación foránea se explicita mediante una sentencia REFERENCES.
• El SQL generado depende de la base de datos que se está usando, de
manera que los tipos de campos como auto_increment (MySQL), serial
(PostgreSQL), o integer primary key (SQLite) son usados
automáticamente. Lo mismo para el uso de comillas en los nombres de
campos, por ejemplo, el uso de comillas simples o dobles.
• El comando sql de manage.py no ejecuta automáticamente el SQL en
tu base de datos, sólo lo muestra en pantalla, es solo para que veas lo
que django piensa que se requiere. No obstante, Django provee una
forma fácil de ingresar SQL a la base de datos.
6/26/2015Programación Web 18
LAS VISTAS
6/26/2015Programación Web 19
Las Vistas
• Una Vista, como es conocida generalmente, es una
función en Python que hace una solicitud web y devuelve
una respuesta web.
• La respuesta web puede ser el contenido de una página,
un error 404, una imagen, un documento XML, entre otros.
• La Vista contiene toda la lógica necesaria para devolver
una respuesta, las cuales se encuentran en un unico
archivo y este archivo se llama views.py en cada
aplicación de Django.
• También pueden personalizarse las vistas de acuerdo a las
plantillas a usar, y se podrían crear otros ficheros para las
vistas en lugar de tener todas las funciones en el views.py.
6/26/2015Programación Web 20
LAS PLANTILLAS
6/26/2015Programación Web 21
Las Plantillas
• Django posee un componente conocido como el «motor
de plantillas» que brinda un poderoso mini-lenguaje para
definir detalles de la capa de la aplicación que visualizará
el usuario.
• Se refuerza mucho la separación de la lógica de
programación de la presentación.
• Pueden ser desarrolladas y mantenidas por cualquier
persona con un poco de conocimiento de HTML y lógica
común, no necesita de fundamentos de Python para
trabajar con ellas.
• Es necesario para trabajar con ellas, conocer bien su
propio mini-lenguaje de plantillas (chuletas)
6/26/2015Programación Web 22
LOS FORMULARIOS
6/26/2015Programación Web 23
Las Formularios
• Permiten el ingreso de datos para su procesamiento, sean
para crear, modificar o realizar búsquedas del contenido.
• Django posee una interfaz administrativa, pero cuando nos
encontramos en la posición de elaborar interfaces de
entrada o edición de datos para los usuarios de nuestra
app, darles acceso al admin de Django en ocasiones es
contraproducente, por eso necesita de los formularios.
• Estos se pueden preparar a nuestra forma o conveniencia,
para manejar las circunstancias dadas, y se pueden
asociar a los modelos de datos ya establecidos.
• Nota: Para crear formularios se usa por convenció un archivo
llamada forms.py que se ubicará en la carpeta de la aplicación
6/26/2015Programación Web 24
Objetos Formularios
• Un objeto formulario en Django es una secuencia de
campos y reglas de validación.
• Permiten depurar la información requerida y
procesarla eficientemente.
• Estos campos y reglas deben ser declarados en el
orden que se desea que aparezcan.
• Las clases formulario son creadas como subclases de
django.forms.Form y tienen un estilo de declaración
muy similar a los modelos de Django
6/26/2015Programación Web 25
ARCHIVOS ESTATICOS
6/26/2015Programación Web 26
Contenido Estático
• Muchos desarrolladores que trabajan con Django se quedan
sorprendidos con el funcionamiento de las vistas y plantillas, pero
eso no es todo, también se deben tener en cuenta las otras
partes de una aplicación: como imágenes, hojas de estilo,
Javascript y otros. Estas partes son: el contenido estático.
• Cuando se tienen proyectos pequeños, se pueden incluir este
tipo de contenido en las plantillas sin ningún problema. Sin
embargo, cuando el proyecto deja de ser pequeño y empieza a
tener muchas partes, lidiar con este tipo de contenido puede ser
un dolor de cabeza.
• Para evitar dolores de cabeza innecesarios Django mediante:
django.contrib.staticfiles, gestiona el contenido estático para las
aplicaciones y los ordena en una sola ubicación fácil de
referenciar y de usar.
6/26/2015Programación Web 27
GESTION DE USUARIOS
6/26/2015Programación Web 28
Usuarios
• La gestión de usuarios es un proceso bastante común en todo
proyecto, muchos desarrolladores han programado
funcionalidades de autenticación una y otra vez a lo largo de
muchos años y siempre funciona de la misma manera.
• Django nos simplifica la vida y es por ello que viene ya con un
sistema de autenticación completo que gestiona cuentas de
usuario, grupos, permisos, sesiones de usuario y cookies.
• El sistema de autenticación de Django, tiene una
documentación muy completa incluyendo algunos ejemplos de
uso. Incluye las funcionalidades más frecuentes:
• Creación de usuarios
• Autenticación de usuarios
• Acceso restringido
• Cierre de sesión
6/26/2015Programación Web 29
DESPLIEGUE DEL
SERVIDOR WEB
6/26/2015Programación Web 30
Deploy Web
Existen muchas formas de llevar un proyecto de Django a
producción y justamente es uno de los motivos que generan mayor
confusión. La documentación oficial sugiere 3 formas:
• Usando WSGI
• Usando FastCGI, SCGI o AJP
• mod_python (ya obsoleto)
Generalmente se usa la primera, mas simple de replicar.
Sin embargo no es solo eso, también existen otras 3 opciones para
trabajar con WSGI:
• Apache y mod_wsgi
• uWSGI
• Gunicorn
La primera opción es la mas usada, pues Apache es un server que muchos
conocen y han instalado. Es necesario saber como configurar y/o levantar
un server apache, conocer de virtualhosts, de abrir o cerrar puertos.
6/26/2015Programación Web 31
LISTOS
PARA
PRACTICAR ????

Más contenido relacionado

La actualidad más candente

Documentacion Proyecto Final
Documentacion Proyecto FinalDocumentacion Proyecto Final
Documentacion Proyecto FinalMoisesAlvarez38
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalChema Alonso
 
Corcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocsCorcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocspablo2017
 
97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeezexavazquez
 
Documentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXDocumentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXMoisesAlvarez38
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpJulio Cesar Salas
 
Guia Para Redactores De Joomla Mambo
Guia Para Redactores De Joomla MamboGuia Para Redactores De Joomla Mambo
Guia Para Redactores De Joomla MamboFernando Tellado
 
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01DC FCP
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsIñaki Arenaza
 
Tecnología educativa ii
Tecnología educativa iiTecnología educativa ii
Tecnología educativa iiamoradry
 

La actualidad más candente (20)

Documentacion Proyecto Final
Documentacion Proyecto FinalDocumentacion Proyecto Final
Documentacion Proyecto Final
 
Turbogears_Instalación
Turbogears_InstalaciónTurbogears_Instalación
Turbogears_Instalación
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digital
 
13proftpd
13proftpd13proftpd
13proftpd
 
Comodo Backup
Comodo BackupComodo Backup
Comodo Backup
 
Corcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocsCorcuera pablo gestorincidenciasocs
Corcuera pablo gestorincidenciasocs
 
Foca API v0.1
Foca API v0.1Foca API v0.1
Foca API v0.1
 
GuíA Whatsize
GuíA WhatsizeGuíA Whatsize
GuíA Whatsize
 
97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeeze
 
Documentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXDocumentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIX
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
MANUAL COBIAN
MANUAL COBIANMANUAL COBIAN
MANUAL COBIAN
 
Guia Para Redactores De Joomla Mambo
Guia Para Redactores De Joomla MamboGuia Para Redactores De Joomla Mambo
Guia Para Redactores De Joomla Mambo
 
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
Qué Es Cobian Backup 9
Qué Es Cobian Backup 9Qué Es Cobian Backup 9
Qué Es Cobian Backup 9
 
Guia Vienna
Guia ViennaGuia Vienna
Guia Vienna
 
Netbeans ide 7.2(2)
Netbeans ide 7.2(2)Netbeans ide 7.2(2)
Netbeans ide 7.2(2)
 
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
 
Tecnología educativa ii
Tecnología educativa iiTecnología educativa ii
Tecnología educativa ii
 

Similar a Introducción a Django y su aplicación en desarrollo web

Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2SEAT, S.A.
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a DrupalPedro Cambra
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8Julian Valero
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - DjangoViviana Trujillo
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBJavier Condori Flores
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 

Similar a Introducción a Django y su aplicación en desarrollo web (20)

Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
 
Dia2
Dia2Dia2
Dia2
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - Django
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Django
DjangoDjango
Django
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Documento Web2Py
Documento Web2PyDocumento Web2Py
Documento Web2Py
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 

Último

Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 

Último (7)

Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 

Introducción a Django y su aplicación en desarrollo web

  • 1. 6/26/2015 1Programación Web Ing. George Navarro Gómez
  • 2. 6/26/2015Programación Web 2 Introducción El crecimiento de Python es cada vez mayor y se ha hecho mas notorio en los últimos años con la aparición de herramientas que hacen el trabajo mas simple y eficiente con este lenguaje de programación. Una de estas herramientas es DJANGO, el framework hecho en python para perfeccionistas. Aparte de las ventajas que tiene por ser framework, Django promueve el desarrollo rápido: se construyen aplicaciones en cuestión de días y con el conocimiento suficiente esos días se pueden reducir a horas.
  • 3. 6/26/2015Programación Web 3 Django • Es un framework web de código abierto escrito en Python que permite construir aplicaciones web mucho más rápido y con menos código. • Impulsa el desarrollo de código limpio al promover buenas prácticas de desarrollo web. • Se centra en automatizar todo lo posible y se adhiere al principio DRY (Don’t Repeat Yourself). • Usa una modificación de la arquitectura Modelo-Vista- Controlador (MVC) llamada MTV(Model-Template-View), ésta forma de trabajar permite que sea pragmático.
  • 4. 6/26/2015Programación Web 4 Origen de Django Nace como un proyecto para publicación de noticias de Lawrence Journal World. Inicialmente desarrollado para gestionar aplicaciones web de páginas orientadas a noticias de World Online, luego se liberó bajo licencia BSD. Fue construido desde el inicio como una herramienta para resolver problemas reales en un entorno empresarial Fue diseñado para optimizar el tiempo de desarrollo y los requerimientos exigentes de los desarrolladores web El nombre de Django es en honor al famoso músico francés Django Reinhardt.
  • 5. 6/26/2015Programación Web 5 Quienes usan Django • dpaste.com • The Washington Post • Bitbucket.org • Disqus • Instagram • Pinterest • michaelmoore.com • Theguardian • Lawrence.com • The New York Times • Fluendo • djangosites
  • 9. 6/26/2015Programación Web 9 el MODELO • Define los datos almacenados • Se encuentran en forma de clases de Python • Cada tipo de dato que debe ser almacenado se encuentra en una variable con ciertos parámetros, posee métodos también. • Todo esto, permite indicar y controlar el comportamiento de los datos.
  • 10. 6/26/2015Programación Web 10 la VISTA • Se presenta en forma de funciones de Python • Su propósito es determinar qué datos serán visualizados y otros aspectos relacionados. • El ORM de Django permite escribir código Python en lugar de SQL para hacer las consultas que necesita la vista. • Se encarga también de tareas conocidas como: envio de correos automáticos, autenticación con servicios externos y validación de datos de formularios. Nota: Importante destacar que la vista no tiene nada que ver con el estilo de la presentación de los datos, solo se encarga de los datos, la presentación es tarea de la plantilla.
  • 11. 6/26/2015Programación Web 11 la PLANTILLA • Es básicamente una página HTML con algunas etiquetas propias de Django. No solamente crea contenido HTML, también XML, CSS, Javascript, CSV, etc. • Recibe los datos de la vista y los organiza para la presentación al navegador web. • Las etiquetas que usa Django para las plantillas permiten que sea flexible para los diseñadores del frontend, incluso tiene estructuras de control como: if ó or; por si es necesaria una presentación lógica de los datos, estas estructuras son limitadas para evitar un desorden poniendo cualquier tipo de código Python. Esto permite que la lógica del sistema siga estando en la Vista.
  • 12. 6/26/2015Programación Web 12 Configuración de Rutas Django posee un mapeo de URLs que permite controlar el despliegue de las vistas, ésta configuración es conocida como URLConf. Consiste en leer la URL que el usuario solicitó, encontrar la vista apropiada para la solicitud y pasar cualquier variable que la vista necesite para completar su trabajo. El URLConf está construido con expresiones regulares en Python y sigue su filosofía: Explícito es mejor que implícito. Este URLConf permite que las rutas que maneje Django sean agradables y entendibles para el usuario.
  • 13. 6/26/2015Programación Web 13 Archivos Predeterminados Archivos del Proyecto • __init__.py : Archivo vacío que le dice a Python que debe considerar este directorio como un paquete de Python. • manage.py : Contiene una porción de código que permite interactuar con el proyecto de Django de muchas formas. • settings.py : Contiene todas las configuraciones para el proyecto. • urls.py : Contiene todas las rutas que están disponibles en el proyecto Archivos de la aplicación • __init__.py : La misma descripción anterior. • models.py : Se declaran las clases del modelo. • views.py : Se declaran las funciones de la vista. • admin.py : Se genera un interface de administración ágil.
  • 15. 6/26/2015Programación Web 15 EL MODELO • Un modelo es la representación de los datos de nuestra aplicación. • Contiene los campos básicos y el comportamiento de los datos que serán almacenados. • Por lo general, cada modelo se convierte en una tabla de la base de datos. • Cada modelo es una subclase de django.models.Model • Cada atributo de un modelo representa a un campo de la tabla • Django automáticamente nos da acceso a la base de datos.
  • 16. 6/26/2015Programación Web 16 El shell de Django • Los modelos nos permiten manipular los datos: registrarlos, editarlos, eliminarlos, consultarlos y realizar procesos con ellos. • Estas manipulaciones (generalmente consultas) se reflejarán en las vistas y posteriormente en las plantillas para mostrar los resultados en el navegador. • Las consultas en base a los modelos de Django son la base de todo el desarrollo en este framework. El shell Interprete interactivo de Python, que permitirá probar los modelos, hacer consultas, analizar resultados, antes de elaborar las vistas. Es muy útil si queremos ahorrar tiempo al momento de responder a los requerimientos que los usuarios de la aplicación puedan necesitar. Nota: Para acceder al shell, se abre un terminal en la carpeta donde esta el proyecto y digitamos: python manage.py shell o si se usa algun IDE, generalmente se encuentra en una de las opciones del menú.
  • 17. 6/26/2015Programación Web 17 Notas importantes - Modelos • La salida exacta variará dependiendo de la base de datos usada. • Los nombres de las tablas son generadas automáticamente combinando el nombre de la aplicación y el nombre en minúsculas del modelo. • Las claves primarias (los IDs) se agregan automáticamente. • Por convención, Django anexa "_id" al campo de la clave foránea. • La relación foránea se explicita mediante una sentencia REFERENCES. • El SQL generado depende de la base de datos que se está usando, de manera que los tipos de campos como auto_increment (MySQL), serial (PostgreSQL), o integer primary key (SQLite) son usados automáticamente. Lo mismo para el uso de comillas en los nombres de campos, por ejemplo, el uso de comillas simples o dobles. • El comando sql de manage.py no ejecuta automáticamente el SQL en tu base de datos, sólo lo muestra en pantalla, es solo para que veas lo que django piensa que se requiere. No obstante, Django provee una forma fácil de ingresar SQL a la base de datos.
  • 19. 6/26/2015Programación Web 19 Las Vistas • Una Vista, como es conocida generalmente, es una función en Python que hace una solicitud web y devuelve una respuesta web. • La respuesta web puede ser el contenido de una página, un error 404, una imagen, un documento XML, entre otros. • La Vista contiene toda la lógica necesaria para devolver una respuesta, las cuales se encuentran en un unico archivo y este archivo se llama views.py en cada aplicación de Django. • También pueden personalizarse las vistas de acuerdo a las plantillas a usar, y se podrían crear otros ficheros para las vistas en lugar de tener todas las funciones en el views.py.
  • 21. 6/26/2015Programación Web 21 Las Plantillas • Django posee un componente conocido como el «motor de plantillas» que brinda un poderoso mini-lenguaje para definir detalles de la capa de la aplicación que visualizará el usuario. • Se refuerza mucho la separación de la lógica de programación de la presentación. • Pueden ser desarrolladas y mantenidas por cualquier persona con un poco de conocimiento de HTML y lógica común, no necesita de fundamentos de Python para trabajar con ellas. • Es necesario para trabajar con ellas, conocer bien su propio mini-lenguaje de plantillas (chuletas)
  • 23. 6/26/2015Programación Web 23 Las Formularios • Permiten el ingreso de datos para su procesamiento, sean para crear, modificar o realizar búsquedas del contenido. • Django posee una interfaz administrativa, pero cuando nos encontramos en la posición de elaborar interfaces de entrada o edición de datos para los usuarios de nuestra app, darles acceso al admin de Django en ocasiones es contraproducente, por eso necesita de los formularios. • Estos se pueden preparar a nuestra forma o conveniencia, para manejar las circunstancias dadas, y se pueden asociar a los modelos de datos ya establecidos. • Nota: Para crear formularios se usa por convenció un archivo llamada forms.py que se ubicará en la carpeta de la aplicación
  • 24. 6/26/2015Programación Web 24 Objetos Formularios • Un objeto formulario en Django es una secuencia de campos y reglas de validación. • Permiten depurar la información requerida y procesarla eficientemente. • Estos campos y reglas deben ser declarados en el orden que se desea que aparezcan. • Las clases formulario son creadas como subclases de django.forms.Form y tienen un estilo de declaración muy similar a los modelos de Django
  • 26. 6/26/2015Programación Web 26 Contenido Estático • Muchos desarrolladores que trabajan con Django se quedan sorprendidos con el funcionamiento de las vistas y plantillas, pero eso no es todo, también se deben tener en cuenta las otras partes de una aplicación: como imágenes, hojas de estilo, Javascript y otros. Estas partes son: el contenido estático. • Cuando se tienen proyectos pequeños, se pueden incluir este tipo de contenido en las plantillas sin ningún problema. Sin embargo, cuando el proyecto deja de ser pequeño y empieza a tener muchas partes, lidiar con este tipo de contenido puede ser un dolor de cabeza. • Para evitar dolores de cabeza innecesarios Django mediante: django.contrib.staticfiles, gestiona el contenido estático para las aplicaciones y los ordena en una sola ubicación fácil de referenciar y de usar.
  • 28. 6/26/2015Programación Web 28 Usuarios • La gestión de usuarios es un proceso bastante común en todo proyecto, muchos desarrolladores han programado funcionalidades de autenticación una y otra vez a lo largo de muchos años y siempre funciona de la misma manera. • Django nos simplifica la vida y es por ello que viene ya con un sistema de autenticación completo que gestiona cuentas de usuario, grupos, permisos, sesiones de usuario y cookies. • El sistema de autenticación de Django, tiene una documentación muy completa incluyendo algunos ejemplos de uso. Incluye las funcionalidades más frecuentes: • Creación de usuarios • Autenticación de usuarios • Acceso restringido • Cierre de sesión
  • 30. 6/26/2015Programación Web 30 Deploy Web Existen muchas formas de llevar un proyecto de Django a producción y justamente es uno de los motivos que generan mayor confusión. La documentación oficial sugiere 3 formas: • Usando WSGI • Usando FastCGI, SCGI o AJP • mod_python (ya obsoleto) Generalmente se usa la primera, mas simple de replicar. Sin embargo no es solo eso, también existen otras 3 opciones para trabajar con WSGI: • Apache y mod_wsgi • uWSGI • Gunicorn La primera opción es la mas usada, pues Apache es un server que muchos conocen y han instalado. Es necesario saber como configurar y/o levantar un server apache, conocer de virtualhosts, de abrir o cerrar puertos.