Django 101

En este post recrearé la idea del tutorial del sitio de django, simplificandolo al máximo para que puedan tomarle el gusto a este excelente framework en pocos minutos. Al igual que en el ejmeplo del sitio de django crearé una aplicación de encuestas. Esto se debe a que es una aplicación simple,  intuitiva y usable. Asumiré que estarán usando la version 1.02 del framework (la pueden descargar aquí) y cualquier versión de python superior a la 2.5.x (django aún no es compatible con la 3.0).

Creando un proyecto

Para crear un proyecto de django se deben seguir ciertos pasos iniciales que se encargaran de configurar nuestra aplicación en su ambiente de ejecución (configuración propia de djang, de la base de datos y de la aplicación en si).  Recomiendo que creen un directorio “proyectos-django” (o como quieran llamarle) y se situen en el mismo. Una vez hecho esto ejecuten el siguiente comando:

django-admin.py startproject sitio-encuestas

Nuevamente asumiré que el proceso de instalación tanto de django como de Python es correcto (si no lo es no podrán utilizar el comando django-admin.py). Este comando creará un sub-directorio de “proyectos-django” llamado sitio-encuestas con la siguiente estructura:

sitio-encuestas/
    __init__.py
    manage.py
    settings.py
    urls.py

Los archivos son:

  • _init_py: Un archivo encargado de comunicarle al interprete de Python que el directorio actual es un paquete.
  • manage.py: Una herramienta propia del framework que nos permitirá ejecutar varias tareas vinculadas al mismo.
  • settings.py: Configuración del proyecto actual.
  • urls.py: El archivo encargado de manejar la “tabla de contenidos” del proyecto. El encargado de manejar la navegación del sistema.

Configurando la aplicación

Para este ejemplo editaremos el archivo settings.py cambiando las siguientes lineas:

DATABASE_ENGINE=sqlite3
DATABASE_NAME=/home/usuario/proyectos-django/sitio-encuestas/base

Unicamente se cambian estas líneas ya que para el ejemplo utilizaré sqlite como base de datos y la misma no requiere url del servidor ni usuario y contraseña (para esta guía al menos). Una vez editado este archivo debemos crear la base de datos con el siguiente comando:

python manage.py syncdb

Notar el uso del archivo manage.py, el cual fue mencionado anteriormente. Ahora que el proyecto esta configurado crearemos una “aplicación” para el mismo. La aplicación en cuestión se llamará “encuestas”.

python manage.py startapp encuestas

Esto creará el siguiente directorio:

encuestas/
    __init__.py
    models.py
    views.py

En el directorio de la aplicación django creó 3 archivos, el archivo que indica a Python que es un paquete propio, el archivo models.py donde se definirá el modelo de clases de la aplicación y el archivo views.py encargado de definir las vistas (que veremos más adelante). Editemos el archivo models.py para que se vea así:

from django.db import models
 
class Encuesta(models.Model):
    pregunta = models.CharField(max_length=200)
    fecha_pub = models.DateTimeField('fecha de publicación')
 
    def __unicode__(self):
        return self.pregunta
 
class Opcion(models.Model):
    encuesta = models.ForeignKey(Encuesta)
    opcion = models.CharField(max_length=200)    votos = models.IntegerField()
 
    def __unicode__(self):
        return self.opcion

No explicaré en detalle este archivo por dos motivos,  1) se puede leer en la guía oficial y 2)creó que es bastante intuitivo. Una vez creado el modelo debemos activarlo con el framework. Para esto debemos editar el archivo de configuración settings.py del directorio sitio-encuestas/ y agregar en INSTALLED_APPS la línea ’sitio-encuestas.encuestas’. Esta sección del archivo debería verse así:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'sitio-encuestas.encuestas'
)

Ahora el framework sabe que el proyecto contiene a la aplicación “encuestas”. Para impactar este modelo sobre la base de datos lo único que se debe hacer es:

python manage.py sql encuestas

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

BEGIN;
CREATE TABLE "encuestas_encuesta" (
    "id" serial NOT NULL PRIMARY KEY,
    "pregunta" varchar(200) NOT NULL,
    "fecha_pub" timestamp WITH time zone NOT NULL
);
CREATE TABLE "encuestas_opcion" (
    "id" serial NOT NULL PRIMARY KEY,
    "encuesta_id" integer NOT NULL REFERENCES "encuestas_encuesta" ("id"),
    "opcion" varchar(200) NOT NULL,
    "votos" integer NOT NULL
);
COMMIT;

Y si estamos seguros de que con este código SQL queremos crear las tablas, ejecutamos:

python manage.py syncdb

Para impactarlos contra la base de datos real. Con esto ya tenemos una aplicación completamente persistente en nuestras manos. Si acceden al shell de Python y juegan con las clases, pueden crear y persistir objetos Encuesta y Opcion. En la siguiente página veremos como se maneja la administración web que nos brinda el framework.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • email
  • StumbleUpon
  • Technorati
  • DZone
  • LinkedIn
  • Linkter
  • Netvouz
  • YahooMyWeb
  • blogmarks
  • TwitThis

Pages: 1 2

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">