Laboratorio 7: Base de Datos de Películas

Objetivos

Durante esta práctica, los alumnos serán capaces de:

Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.

Descripción

Esta práctica puede ser elaborada de manera individual o en parejas.

El material aquí cubierto asume que ya se leyeron los capítulos 5 y 6 de [HOLOVATY].

  1. Si aún no las hecho, instala el servidor de MySQL y el paquete MySQLdb.
  2. Desde el monitor de MySQL, crea una base de datos llamada bd_peliculas:
    create database bd_peliculas;
  3. Desde la línea de comando, ejecuta lo siguiente para crear un nuevo proyecto de Django llamado peliculas:

    django-amdin.py startproject peliculas
  4. En el directorio recién creado, modifica el archivo settings.py para que incluya lo siguiente:

    DATABASE_ENGINE = 'mysql' 
    DATABASE_NAME = 'bd_peliculas' 
    DATABASE_USER = 'root'         # Login de administrador de MySQL
    DATABASE_PASSWORD = 'secreto'  # Password de administrador de MySQL
    DATABASE_HOST = ''             # Usar el default: localhost
    DATABASE_PORT = ''             # Usar el default: 3306
    
  5. Desde la línea de comando, ejecuta:

    python manage.py shell

    Verifica que la configuración esté correcta:

    >>> from django.db import connection
    >>> cursor = connection.cursor()

    Si no marca error alguno, quiere decir que todo está bien.

  6. Dentro del proyecto, crea una aplicación llamada principal a través de la línea de comando:

    python manage.py startapp principal
  7. Edita el archivo principal/models.py para que incluya la definición de dos modelos: Actor y Pelicula:

    • Los campos de Actor deben ser: nombre (CharField de tamaño 30) y fecha de nacimiento (DateField).
    • Los campos de Pelicula deben ser: nombre (CharField de tamaño 30), año de estreno (IntegerField) y actores (ManyToManyField con Actor).
  8. Modifica el archivo settings.py con las siguientes líneas:

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.admin',
        'peliculas.principal',
    )
  9. Verifica que los modelos están correctamente definidos ejecutando desde la línea de comando:

    python manage.py validate

    En caso de que existan errores, realiza las correcciones necesarias.

  10. Ejecuta lo siguiente desde la línea de comando para observar los comandos de MySQL que se requieren para crear las respectivas tablas:

    python manage.py sqlall principal
  11. Desde la línea de comando, ejecuta lo siguiente para crear la base de datos. El programa te pedirá crear un superusuario, responde que sí y teclea los datos que te solicita.

    python manage.py syncdb
  12. Usando el monitor de MySQL, verifica que las tablas correspondientes existan en la base de datos.
  13. Añade a tus dos modelos, Pelicula y Actor, la clase anidada class Admin: pass y el método __str__ para permitir su edición desde el sistema de administración de sitios.
  14. Agrega a urls.py un patrón URL para acceder a dicho sistema:

    from django.conf.urls.defaults import *
    
    urlpatterns = patterns('',
        (r'^admin/', include('django.contrib.admin.urls')),
    )
  15. Ejecuta el servidor de Web desde la línea de comando:

    python manage.py runserver

    Accede al sitio de administración desde un browser con el siguiente URL: http://localhost:8000/admin/. Utiliza el login y password que definiste en el paso en el que realizaste el syncdb.

  16. Captura algunos datos de actores y películas (al menos cinco de cada uno) usando el sito de administración. Puedes encontrar información verídica en http://www.imdb.com/.
  17. Usando el monitor de MySQL, verifica que los datos capturados estén dentro de las respectivas tablas de la base de datos.
  18. Realiza los ajustes necesarios en la configuración del proyecto y crea una vista y una plantilla en donde se muestren en una tabla todas las películas de la base de datos, incluyendo el nombre de los actores participantes. Dicha vista debe poder accederse con el URL: http://localhost:8000/peliculas/info/

    Verifica que la salida sea XHTML válido utilizando el Servicio de Validación de W3C.

¿Qué se debe entregar?

Sigue las siguientes indicaciones para entregar tu práctica:

Evaluación

Esta práctica será evaluada usando los siguientes criterios:

100 La práctica cumple con todos los requerimientos.
60-90 La práctica funciona en general, pero contiene uno o varios errores menores.
50 Proyecto Web produce un error a tiempo de ejecución.
DA La solución es un plagio.
© 1996-2008 por Ariel Ortiz Ramírez (ariel.ortiz@itesm.mx)
ArielOrtiz.com | Desarrollado en Django | Licencia de Creative Commons | XHTML válido | CSS válido