Django - Plataforma de sitios web
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Django - Plataforma de sitios web

on

  • 16,873 views

Django: introducción, historia del framework, instalación y ejemplo práctico de desarrollo.

Django: introducción, historia del framework, instalación y ejemplo práctico de desarrollo.

Statistics

Views

Total Views
16,873
Views on SlideShare
8,458
Embed Views
8,415

Actions

Likes
5
Downloads
234
Comments
1

17 Embeds 8,415

http://aprendepython.blogspot.com 4835
http://www.linuxhispano.net 2916
http://aprendepython.blogspot.com.es 288
http://aprendepython.blogspot.mx 142
http://aprendepython.blogspot.com.ar 136
http://www.slideshare.net 53
http://ckernel.blogspot.com 10
http://aprendepython.blogspot.com.br 9
http://webcache.googleusercontent.com 7
http://aprendepython.blogspot.de 5
http://aprendepython.blogspot.fr 4
http://aprendepython.blogspot.co.uk 2
http://aprendepython.blogspot.it 2
http://feeds.feedburner.com 2
https://mj89sp3sau2k7lj1eg3k40hkeppguj6j-a-sites-opensocial.googleusercontent.com 2
http://aprendepython.blogspot.no 1
http://aprendepython.blogspot.ie 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Django - Plataforma de sitios web Presentation Transcript

  • 1. Alumnos: José Antonio Sánchez Pallero Francisco Javier Carazo Gil Alumnos: José Antonio Sánchez Pallero Francisco Javier Carazo Gil
  • 2. Condiciones
    • Estilo y formato de la presentación:
      • OpenOffice.org con plantilla generada para la ocasión
    • Esta presentación se encuentra bajo licencia:
      • CreativeCommons 3.0 Reconocimiento-NoComercial España
  • 3.
    • Sistema operativo:
      • Ubuntu 9.10 Karmic Koala compilada para amd64
    • Programa de presentación:
      • OpenOffice.org 3.1.1 – Impress
    • Editor de texto:
      • Geany (posiblemente el mejor editor de texto para Gnome)
    • Servidor web:
      • Servidor de pruebas de Django (para producción se recomienda Apache)
    • SGBD:
      • MySQL 5.1.37
    • Algunas imágenes han sido adquiridas de la Fundación Wikimedia
    Infraestructura
  • 4. Django es un framework o plataforma de alto nivel, desarrollada en Python , que permite desarrollos rápidos, prácticos y limpios de aplicaciones web .   Django está centrado en la reutilización de código, la conectividad y extensibilidad de componentes, del desarrollo rápido y la automatización de tareas lo máximo posible, siguiendo el principio DRY (Don’t Repeat Yourself), el cual determina que cada pieza de conocimiento dentro de un sistema debe tener una representación única, imperativa y sin ambigüedades. Django: Definición
  • 5.
    • La plataforma Django consta de los siguientes elementos:
    • Mapeador relacional de Objetos : Permite definir el modelo de datos completamente en Python, con una API de acceso dinámico a datos gratuita, aunque permite el uso de sentencias SQL si así se requiere en el desarrollo de una aplicación.
    • Interfaz de administración automático : Django permite la creación automatizada de interfaces de usuario para agregar o editar contenidos de la aplicación web, liberando al administrador del sistema de estas tareas.
    Django: Estructura 1/2
  • 6.
    • Diseño elegante de URL : Django permite al administrador determinar un esquema de URL con sentido, sencillo y directo para el usuario final.
    • Sistema de Plantillas : Django posee un lenguaje de generación de plantillas potente, fácil y extensible, que permite la separación de código, contenido y diseño.
    • Internacionalización : Viene con un amplio soporte de idiomas, permitiendo además la traducción de cadenas específicas no incluidas por el soporte original.
    Django: Estructura 2/2
  • 7. Fue desarrollado en origen para gestionar varias páginas orientadas a noticias de la World Company de Lawrence, Kansas, en el que era un entorno muy mutable y con unas necesidades muy estrictas. Django fue liberada al público bajo una licencia BSD en julio de 2005 ; la plataforma fue nombrada en alusión al guitarrista de jazz gitano Django Reinhardt , del mismo modo que Python debe su nombre a los Monty Python. Django: Historia
  • 8. a) lawrence.com: Sitio de entretenimiento local renombrado internacionalmente con noticias, historias, grupos de música, bebidas especiales, etc. Django: Casos de Uso 1/6
  • 9. b) washingtonpost.com : Selección de aplicaciones web innovadoras del periódico The Washington Post. Django: Casos de Uso 2/6
  • 10. c) EveryBlock : Sistema de noticias de localidades estadounidenses. Django: Casos de Uso 3/6
  • 11. d) LJWorld.com Sitio web de empresa líder de periodismo. Django: Casos de Uso 4/6
  • 12. e) Tabblo Sitio web de compartición de fotos, con el detalle innovador de comentar las mismas. Django: Casos de Uso 5/6
  • 13. f) Toronto Life Diario de la ciudad de Toronto. Django: Casos de Uso 6/6
  • 14.
    • Django se puede instalar de dos maneras:
    • Manual - Descargando de su sitio web la última versión comprimida: http://django.es/
    • B) Automática - Instalando desde el gestor de paquetes synaptic de GNU/Linux Ubuntu/Debian derivativos
    Django: Instalación 1/4
  • 15. Django: Instalación (Manual) 2/4
  • 16. tar xzvf Django-1.1.tar.gz cd Django-1.1 sudo python setup.py install Django: Instalación (Manual) 3/4
  • 17. Django: Instalación (Automática) 4/4
  • 18.
    • Software a instalar
      • Servidor MySQL: mysql-server
      • Interfaz MySQL-Python: python-mysqldb
      • Subversion: subversion
      • El nombre de los paquetes puede variar entre distintas distribuciones y repositorios.
    Django: Instalación SGBD
  • 19.
    • Ejecutamos: django-admin.py startproject misitio
    • Nos dirigimos a misitio y ejecutamos el servidor de pruebas:
      • python manage.py runserver
    • Podemos ver nuestro primer sitio Django en el puerto 8000 de nuestro equipo: http://localhost:8000
    Django: Primer Sitio Web
  • 20.
    • Diferencia
      • Proyecto: sitio web completo que consta de varias aplicaciones donde se define el controlador .
      • Aplicación: parte del sitio web donde se define el modelo y la vista .
    • Proyecto
      • Creación: python django-admin.py startproject misitio
      • __init__.py
      • manage.py : Gestión del proyecto.
      • settings.py : Configuración del proyecto.
      • urls.py : Controlador . Mapea las url entrantes a funciones Python definidas en módulos.
    Django: Estructura Sitio 1/2
  • 21.
    • Aplicación
      • Creación: python manage.py startapp miaplicacion
      • __init__.py
      • models.py : Modelos u objetos que serán mapeados a una base de datos relacional.
      • views.py : Funciones que van a responder a las urls entrantes. Vista .
      • Modelo - Vista - Controlador
    Django: Estructura Sitio 2/2
  • 22.
    • Vamos a desarrollar una aplicación de ejemplo que gestione la información del personal de un organismo. La estructura de la información será la siguiente:
    Django: Ejemplo 1/7 A partir de ahora se comentaran los aspectos más relevantes, dejando los detalles para visualizarlos directamente en el código
  • 23.
    • Las posibilidades que debe ofrecernos el sistema son:
      • Disponibilidad de un panel de adminstración para añadir, editar y eliminar datos.
      • Los datos han de estar relacionados como muestra el diagrama de clases.
      • Debemos disponer de un interfaz web público que nos permita listar los datos con un un aspecto gráfico atractivo por:
        • Instituto: Mostrando los grupos pertenecientes a un Instituto.
        • Grupos: Mostrando los investigadores pertenecientes a un grupo
    Django: Ejemplo 2/7
  • 24.
    • Creamos el proyecto:
      • django-admin.py startproject personal
    • Creamos la aplicación dentro del proyecto:
      • python manage.py startapp aplicacion
    • Configuramos el proyecto:
      • ./settings.py : Base de datos, aplicaciones instaladas, directorio de templates .
      • ./manage.py: Mediante expresiones regulares definimos el tratamiento de las distintas URL que llevarán a distintas vistas:
        • personal.aplicacion.views.index
      • Especial atención a las peticiones del servidor a archivos estáticos: CSS, imágenes... con la regla /site_media
    Django: Ejemplo 3/7
  • 25.
    • ./aplicacion/models.py : Definimos el modelo . Nos abstraemos de SQL para trabajar sobre clases con una sintaxis propia de Django. Por ejemplo:
      • class Grupo(models.Model):
        • nombre = models.CharField("Grupo", max_length=64)
        • instituto = models.ForeignKey(Instituto, verbose_name="Instituto al que pertenece")
    • Al terminar de redefinir el modelo sincronizamos la base de datos:
      • python manage.py syncdb
    • ./aplicacion/admin.py : Importamos y registramos las clases de los modelos para poder interactuar con el interfaz de administración.
    • ./aplicacion/views.py : Definimos tres vistas (index, instituto y grupo).
    Django: Ejemplo 4/7
  • 26.
    • Ejemplo de vista :
      • def index(request):
        • # todos los institutos para el listado lateral
        • institutos = Instituto.objects.all()
        • # se llama al template con esta info.
        • return render_to_response('aplicacion/base.html', {'institutos': institutos,})
    • Template o plantilla
      • Definida en el directorio de las plantillas, es un archivo con etiquetas HTML que incluye trozos de código propios de Python que mediantes bucles, condicionales... controlamos la salida de los datos por pantalla. Estos datos los pasamos con el segundo parámetro de la función render_to_response.
    Django: Ejemplo 5/7
  • 27.
    • La plantilla está desarrollada en un sólo fichero: base.html .
    • Las construcciones propias de Django que he utilizado han sido las siguientes:
      • Iteración
      • {% for investigador in investigadores %}
      • <h3>{{ investigador.apellidos }}, {{ investigador.nombre }} (<em>{{ investigador.nombreUsuario }}</em>)</h3>
      • {% endfor %}
      • Se itera sobre la lista de investigadores devuelta por la vista: personal.aplicacion.views.grupo
    • ACLARACIÓN: Su aspecto estético está basado en una plantilla con licencia CreativeCommons, llamada CleanType , ligeramente modificada.
    Django: Ejemplo 6/7
  • 28.
    • Condicional:
      • {% if institutos %}
        • {% for instituto in institutos %}
        • <li><a href=&quot;/instituto/{{ instituto.id }}&quot;>{{ instituto.nombre }}</a></li>
        • {% endfor %}
      • {% else %}
        • <li>Vac&iacute;o</p>
      • {% endif %}
    • Para navegar entre distintas vistas nos valemos de direcciones URL del tipo, a las que llegamos por enlaces:
      • http://localhost:8000/instituto/2/ -> Llama a la vista instituto pasándole un 2 como parámetro.
    Django: Ejemplo 7/7
  • 29.
    • Positivo
      • Desarrollo muy rápido en comparación con otras tecnologías web.
      • Framework maduro con mucha documentación y una nutrida comunidad.
      • Nivel de abstracción suficientemente alto para el desarrollo rápido, suficientemente bajo para controlar ciertos aspectos importantes.
      • Desentendimiento de labores tan importanes para la seguridad como la autenticación o la entrada de datos por parte del usuario.
      • Abstracción total de la BBDD y trabajo directamente sobre los objetos.
      • Rendimiento mejor (según algunas referencias) que otros framework también libres como RoR o Symfony .
      • Es software libre y está escrito en Python
    Django: Conclusiones 1/2
  • 30.
    • Negativo
      • Dificultad para encontrar host con soporte Django.
      • Menor implantación en proyectos de gran tamaño que otras soluciones.
      • Mayor dificultad que otras soluciones para instalar y configurar el framework.
    Django: Conclusiones 2/2
  • 31.
    • The Django Book - Adrian Holovaty y Jacob Kaplan-Moss ( GNU Free Document License )
      • http://www.djangobook.com/
    • Tutorial de Django - David Asorey Álvarez ( CC )
      • http://davidasorey.net/static/django-tutorial/
    Django: Bibliografía