Curso Python DGA 2011/django/intro

Instalación

 * https://docs.djangoproject.com/en/1.3/intro/install/


 * Comprobamos que está instalado (y la versión)

Creación de un proyecto
Un proyecto en Django son 4 ficheros:
 * __init__.py
 * Indica que se trata de un paquete.


 * manage.py
 * Programa de gestión de django. A partir de ahora será el que usemos para interactuar con el proyecto.


 * settings.py
 * Fichero de configuración del proyecto.


 * urls.py
 * Gestiona la tabla de urls a las que responde el proyecto.

Servidor web de desarrollo
El proyecto incorpora un servidor web:

Comprobamos la dirección con el navegador o

Este servidor ligero nos servirá para desarrollar el proyecto. No está pensado para sitios en producción. Para usar Django en producción, revisa la documentación: https://docs.djangoproject.com/en/1.3/howto/deployment/

Configuración del proyecto
Editar settings.py

Rutas absolutas
Como la configuración necesita rutas absolutas, podemos añadir esta función a settings.py:

Configuración de la base de datos
Por defecto, tiene sopote para Postgresql, MySQL, Sqlite y Oracle. Para usar sqlite:

Aplicar los cambios
Crea las tablas necesarias para el desarrollo de proyecto, incluyendo todas las aplicaciones incuidas en INSTALLED_APPS

Proyectos y aplicaciones
Para optimizar los recursos, un proyecto puede tener varias aplicaciones. Estas aplicaciones se pueden instalar en varios proyectos. Por eso se dice que las aplicaciones de django son "pluglables".

Creación de una aplicación
Esto creará el siguiente directorio:

Incluir la aplicación en el proyecto
Hay que añadir la nueva apliación a INSTALLED_APPS dentro de settings.py

Definición de modelos
models.py


 * Tipos de datos: https://docs.djangoproject.com/en/1.3/ref/models/fields/
 * Más opciones

Ver sql
Esto hará que veamos el siguiente código SQL:

Syncdb
Si el código es correcto, ejecutamos:

Si las tablas tienen datos, ya no modificará la estructura. Soluciones: eliminar los datos de esa aplicación o usar South: http://south.aeracode.org/

Acceso a los datos
Vemos el contenido de la encuesta porque hemos añadido el método __unicode__. Si no, veríamos  Se crea el método __unicode__ y no __str__ porque los modelos de Django tratan con unicode por defecto.

Otros métodos en los modelos
Podemos añadir métodos normales a los modelos:

Y podemos usarlos así:

Más información sobre las relaciones entre modelos: Acceder a objetos relacionados. Para más infor sobre cómo usar los dobles guiones bajos para hacer búsquedas por campos mediante la API: búsquedas mediante los campos Para más detalles sobre la API de la base de datos: Referencia de la Base de Datos.