Grupo de Sistemas y Comunicaciones



Documentos relacionados
Django. Edwin Caldón. Desarrollo web en Python. Jornadas de Software Libre 2007 JSL2007

Introducción a Django

Índice de contenido. Manual de administración de hospedaje para administradores de dominios

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

Ejercicios de validación e internacionalización

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Mejora tu sitio web. Rafael Sebastián Aguilar. Curso de extensión universitaria Campus de Burjasot Universidad de Valencia Febrero 2014

DOCENTES FORMADORES UGEL 03 PRIMARIA

UNIVERSIDAD DE OVIEDO

Roles y Características

Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

Ejercicios - Persistencia en Android: ficheros y SQLite

CÓMO MANEJAR SU NUEVO SITIO WEB SOBRE DRUPAL Manual técnico y de usuario. Pontificia Universidad Javeriana Grupo PSU CDI

GMF Gestor de incidencias

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

Studium, Campus Virtual de la Universidad de Salamanca.

Tema 4: Tecnologías Web Java

Manual de instalación de la plataforma web para producción

CIMA. MANUAL DE USUARIO

Copias de Seguridad Automáticas para aplicaciones Productor.

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO

Análisis de aplicación: LetoDMS

Moodle, plataforma de aprendizaje

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Mejora tu sitio web. Curso de extensión universitaria Campus de Burjasot Universidad de Valencia

Manual de wiki Cap. 3. Gestión Pág. 1. Manual de wiki. Capítulo 3. Gestión. Reconocimiento-NoComercial-CompartirIgual 2.5 España

III Curso de Diseño de Sitios WEB basados en Gestores de Contenido (CMS)

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Introducción MVC en Django Primeros pasos. Django Framework. José Ortiz Bejar.

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

Formas de llevar a cabo un backup de una base de datos MySQL

Servidores de aplicaciones. Sesión 1: Introducción a los servidores de aplicaciones. Instalación de BEA WebLogic

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles.

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

LA INTRANET -Manual general-

DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS PARA LA ONG ASEM

Realización de copias de seguridad en caliente

CURSO DE PROGRAMACIÓN PHP MySQL

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

1. Notas sobre la instalación de estas aplicaciones

GUIA DEL ADMINISTRADOR INSTITUCIONAL

ÁLAMO SOFTWARE PARA GESTIÓN INMOBILIARIA

Ahora hay que instalar el servidor de la base de datos de MySQL que será EasyPHP. Para esto

MANUAL DE USO DE LA APLICACIÓN

Configuración servidor Tomcat

Validación de usuarios y acceso a recursos digitales con Ezproxy. Biblioteca Dulce Chacón

Julio Cesar Hernández García

magh - CBTis12 Recuerde que debe contar con un correo valido de Gmail.

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Taller Django: de 0 a CRUD

Manual para uso de cuentas de

Práctica: Copia de seguridad y restauración de datos

Manual Básico de Helm 4.2 para Usuarios:

django Fco Javier Lucena Lucena

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

Guía de migración a firma HMAC SHA256 Conexión por Redirección

Parámetros de Configuración Acceso SPIRIT. Perfil BT22

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

TING! INFORMES Y SERVICIOS EXTRA FORMACIÓN TÉCNICA MADRID JULIO 2010

Manual de uso básico de la aplicación

Gestión de proyectos informáticos con software libre

normal del navegador.

Administración Local Soluciones

INDEXHIBIT. Portfolios personalizables. Iván Martínez Toro

PROGRAMACIÓN PÁGINAS WEB CON PHP

Curso. Inicio. Desarrollo de Aplicaciones Web con Symfony2. II Versión

Introducción Microsoft SQL Server 2000 Qué puede hacer con SQL Server 2000? Qué necesita saber para usar SQL Server 2000?

Guía Rápida de Puesta en Marcha de MailStore

Introducción a las Redes de Computadoras. Obligatorio

Servicio Webmail. La fibra no tiene competencia

Conexión a Bases de Datos en PHP

E Manual de usuario. : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Carlos.ors@tecsidel.es

Sistemas de Caché. Para mejorar la velocidad de carga de una web. papers. acens

Publicación en Internet

Instalación de Tomcat7 en Ubuntu

Encuesta sobre la asignatura, los profesores, la interacción en grupo, los contenidos, las prácticas, la comunicación, etc.

UDELAR Regional Este

Grupo de Sistemas y Comunicaciones

Administración de la red (Windows 2008)

MAESTRO DE PHP PHP NIVEL 1

Entorno Virtual Uso educativo de TIC en la UR Tutorial de uso de:

4. CONTENIDO Cómo Añadir Contactos a tu Webmail

MANUAL DE. manual de Joomla JOOMLA

Manual de Usuario Internet

Tutorial: Primeros Pasos con Subversion

Mejora tu sitio web. Rafael Sebastián Aguilar. Curso de extensión universitaria Campus de Burjasot Universidad de Valencia Febrero 2014

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez

DOMINE PHP Y MYSQL por LOPEZ QUIJADO Isbn Indice del Contenido INTRODUCCIÓN PARTE I. REDES E INTERNET

CONTPAQ i Componentes. Carta técnica 1.0.2

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL AVANZADO

Guía de Instalación. Glpi

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

2. Descargamos porpoise. Guardamos y descomprimimos el archivo zip en nuestro ordenador.

Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa.

Transcripción:

Laboratorio de Servicios Web Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.escet.urjc.es 2009 1

(c) GSyC, Grupo de Sistemas y Comunicaciones, 2007 http://gsyc.escet.urjc.es Se permite copiar, distribuir, exhibir, comunicar la obra, crear obras derivadas y hacer uso comercial de este trabajo bajo la condición de reconocer y dar crédito al autor original (Creative Commons Attribution License 2.0) 2

Primera aplicación con Django 3

Objetivos Comprender cómo funciona la web y las tecnologías que la hacen funcionar Aprenderemos teoría practicando Aprender mejores prácticas de desarrollo web Hacer una aplicación real: Gsycbook (una copia simple de Facebook) Cómo? Usaremos Django

Qué es Django? Entorno integrado de desarrollo de aplicaciones web Herramientas para gestionar la aplicación Framework de capa de presentación Acceso a base de datos (mapeo objeto-relacional) Seguridad (XSS, SQL Injection,...) Componentes listos para usar (gestión de usuarios, sesiones, interfaz administración,...) Cache, internacionalización, plantillas, etc.

Dónde encaja Django? Enfoques más comunes de desarrollo web Frameworks de desarrollo web PHP, JavaEE, Python+HttpServer,... Entornos de desarrollo web completos Django Ruby on Rails CakePHP (casi completo) Grails y RIFE (JavaEE) Plataformas extensibles CMS: Joomla, Drupal,... Portal: Plone/Zope, Liferay Portal,... Plataformas de prop. específico: Moodle,... + Libertad + Funcionalidades y herramientas de serie

Conceptos de Django Objetivo principal: desarrollo Super-Rápido: Entorno integrado y completo Cambios en caliente Descripciones de error muy descriptivas Convenciones preferible a configuración Evitar duplicación a toda costa (DRY) etc. Desarrollo dirigido por el modelo Se empieza diseñando el modelo de datos

Preparativos Django ya está instalado en el laboratorio: versión 1.0 Para poder usarlo añade lo siguiente en el fichero $HOME/.bashrc: export PATH=$PATH:/opt/django/django/bin/ export PYTHONPATH=/opt/django/ Instrucciones de instalación (para casa): http://docs.djangoproject.com/en/dev/topics/install/ Confirma la instalación de python y django: $ python --version $ django-admin.py --version

Comandos: Proyectos y Aplicaciones $ django admin.py startproject [proyecto] proyecto$ python manage.py startapp [aplicación] proyecto$ python manage.py help Ejercicio 1: 1. Crea un proyecto llamado gsycbook - Examina los directorios y ficheros que han sido creados 2. Crea en el proy. una aplicación llamada profiles - Examina los directorios y ficheros que han sido creados 3. Averigua como ejecutar el servidor de Django en el puerto 8000 y accede a él con un navegador

Ficheros de un proyecto Django init.py: fichero vacío que indica que este directorio debe ser considerado un paquete. manage.py: herramienta para gestionar el proyecto. settings.py: configuración del proyecto urls.py: declaración de las URLs de las aplicaciones del proyecto [aplicación]/models.py: contiene la definición de las clases del modelo de dominio de la aplic. [aplicación]/views.py: contiene las vistas (código invocado por una URL) de la aplicación

Fichero settings.py Fichero en configuración ( en Python!) Contiene Configuración de la base de datos: DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = 'gsycbook.sqlite' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = '' Aplicaciones instaladas: INSTALLED_APPS = ( 'gsycbook.profiles', ) Otros: zona horaria, codificación, directorio de plantillas,...

Base de datos Django soporta muchas bases de datos MySQL, PostgreSQL, Sqlite3 Sqlite3 cómoda para desarrollo Se ejecuta junto a la aplicación Los datos están en un fichero Acceso a la consola de la base de datos: $python manage.py dbshell Creación automática de tablas $python manage.py syncdb

Definición del modelo (1) Cada aplicación tiene un fichero donde debe definir (o importar) los modelos: Ejemplo: profiles/models.py Se crea una clase por cada entidad (tabla) del modelo Se crea un campo por cada dato (columna) de la entidad Ejemplo: class Profile(models.Model): name = models.charfield(max_length=200) age = models.integerfield()

Definición del modelo (2) Tipos de campos CharField(max_length) SlugField(max_length, db_index, unique) IntegerField() DateField() BooleanField() Relaciones: ForeignKey(Profile) ManyToManyField('self', symmetrical=false) Más http://docs.djangoproject.com/en/dev/topics/db/models/

Más comandos del proyecto python manage.py runserver [puerto] Ejecuta el servidor integrado python manage.py shell Permite ejecutar una consola de python con acceso al código de la aplicación python manage.py validate Valida los modelos creados python manage.py sql <aplicacion> Muestra el código SQL generado a partir del modelo python manage.py loaddata Importa datos en la base de datos Más: http://docs.djangoproject.com/en/dev/ref/django-admin/

Ejercicio 2 1. Edita settings.py, configura la base de datos sqlite3 y registra la aplicación 'profiles' (elimina el resto de aplicaciónes registradas) 2. Edita el fichero profiles/models.py y crea una clase llamada Profile que modele un perfil de usuario con al menos los siguientes campos usando el tipo de campo y opciones más apropiadas posibles: Obligatorios: nombre Opcionales: apellido, nick (valor único), cita favorita, ciudad natal 3. Usa los comandos de manage.py para validar, mostrar el modelo en SQL y cargar en la base de datos las tablas necesarias para este modelo. 4. Confirma que las tablas han sido creadas usando la consola de la base de datos Usa el comando.help para consultar los comandos disponibles

Consultas a la base de datos Django proporciona automáticamente una serie de métodos para realizar consultas a la base de datos Se accede a las entradas de la bd por medio del objeto 'objects' (ej. Profile.objects) Métodos: profile.save() Profile.objects.all() Profile.objects.filter(campo=valor) Profile.objects.get(campo=valor) Lanza excepción si no lo en cuentra Más: http://docs.djangoproject.com/en/dev/topics/db/queries/

La shell de Django La shell permite acceder a la API de los objetos de nuestro proyecto: python manage.py shell >>> from gsycbook.profiles.models import Profile >>> Profile.objects.all() [] >>> p = Profile(name='Jorge') >>> p.save() >>> p.id 1 >>> Profile.objects.filter(name='Jorge')... >>> Profile.objects.get(pk=1)...

1. Usa de la shell para: Ejercicio 3 Introducir cuatro perfiles de usuario diferentes Realizar búsquedas que devuelvan 1, 2 y 3 usuarios 2. Exporta los datos de la base de datos a JSON y XML 3. Borra la base de datos y vuelve a crearla 4. Importa los datos exportados 5. Usa shell y dbshell para confirmar que los datos han sido cargados

Declaración de URLs Definición de URLs En el fichero urls.py Usa expresiones regulares para asociar URLs (sin parámetros) a vistas Ejemplo: urlpatterns = patterns('', ) (r'^profiles/hola', 'gsycbook.profiles.views.say_hello',), (r'^profiles/adios/(.*)', 'gsycbook.profiles.views.say_bye_to',),

Views Views: código que es invocado ante una petición para una URL o conjunto de URLs. Debe ser un método (o un objeto) Los métodos se definen en el fichero profiles/views.py Ejemplo: from django.http import HttpResponse def say_hello(request): return HttpResponse('Hola') def say_bye(request, name): return HttpResponse('Adios %s'%name)

Acceso al modelo desde las vistas Las vistas pueden usarse para acceder al modelo para lectura y modificación: def get_profile(request, nick): profile = Profile.objects.get(nick=nick) profiletext = Nombre: %s % profile.name return HttpResponse(profileText) def get_all_profiles(request): profiles = Profile.objects.all() profilestext = Lista de usuarios: profilestext += Nombre: %s % profiles[0].name... return HttpResponse(profilesText)

Ejercicio 4 1. Crea una vista que responda a la URL /profiles/pepe y muestre datos inventados de un usuario 2. Modifica la expresión regular de urls.py y la vista anteriores de un perfil concreto de la base de datos al invocar /profiles/{nick} 3. Crea una vista que responda a la URL /profiles y muestre una lista con los nombres usuarios dados de alta y un enlace para ver el perfil completo. 4. Comprueba el correcto funcionamiento con el navegador

Referencias Imprescindibles Documentación de Django http://docs.djangoproject.com/en/dev/ Libro de Django (en elaboración) http://www.djangobook.com/en/1.0/ Tutorial de Python http://docs.python.org/tutorial/ Referencia de Python lib http://docs.python.org/reference/

Doc. SQLite3 Otras referencias http://www.sqlite.org/docs.html http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html Comunidad de Django Inglés: Lista: http://groups.google.com/group/django-users Código: http://www.djangosnippets.org/ Español: http://django.es/