Tutorial Django
-

En la actualidad el diseño de sitios web dinámicos o aplicaciones web esta en auge, la programación de estos sitios solía ser tediosa y era difícil dividir roles en el código. Al final teníamos sitios webs que requerían de mantenimiento costoso.
Ahora con la ayuda de los frameworks web es fácil crear aplicaciones webs robustas que ayudan a los desarrolladores a encapsular código aplicando una arquitectura de capas, utilizando patrones, etc.
Hoy veremos una breve introducción al framework Django que es ampliamente utilizado por muchos desarrolladores. Utilizados por empresas muy importantes como Google.¿Que es Django?
Django es un framework web que busca aliviar el trabajo, en general esos trabajos repetitivos que solemos tener todos los programadores.
Es un framework que ayuda a crear sitios aplicando el patrón MVC (model-view-controller) impulsado por el poder del lenguaje Python. Con Django es posible crear sitios webs de alta calidad y facil de mantener.
También incluye un poderoso ORM y es posible crear aplicaciones Web con interacción a bases de datos en pocos minutos.
Django puedes instalar en Linux, Windows o MacInstalación:
Para la instalación es necesario un cliente subversion para descargar el código fuente.
svn co http://code.djangoproject.com/svn/django/trunk/ django_src cd django_src python setup.py installSi estas usando Ubuntu, para instalar subversion utiliza el siguiente comando:
sudo apt-get install subversionEn linux, python suele estar instalado por defecto. Pero en Windows deberás instalarlo descargando el instalador desde la web de Python.
Primeros pasos:
Una vez instalado el Django, podemos crear nuestra primera aplicación web utilizando este framework. Como primer trabajo con Django, crearemos una pequeña aplicación de agenda de teléfonos.
Para crear nuestro proyecto web, debemos ejecutar el siguiente comando:
django-admin.py startproject agendawebSe creará un nuevo directorio con el nombre de la aplicación, en este caso “agendaweb” que contendrá 4 archivos:
- __init__.py: Definición del módulo Python para nuestro directorio.
- manage.py: Una herramienta para la administración del proyecto por ejemplo con esta utilidad vamos a poder lanzar el servidor web de pruebas para la aplicación y también podremos crear las tablas necesarias o definidas por ORM, sincronización, etc..
- settings.py: Archivo de configuración de nuestro proyecto.
- urls.py: Archivo que contiene todos los mapeos de url.
Una vez creado nuestro proyecto web podemos crear nuestra aplicación web, dentro de cada proyecto web Django es posible crear mas de una aplicación.
Con el siguiente comando vamos a crear una aplicación llamada agendaapp.
python manage.py startapp agendaappLuego veremos que hay una carpeta agendaapp y dentro dentro habrán nuevos archivos, models.py (para la definición de nuestro modelo), views.py (para las vistas) y urls.py (controlador)
Creando nuestro modelo:
Primero de todos vamos a definir una clase para representar a cada registro de nuestra guía telefónica.
from django.db import models class Personas(models.Model): nombre = models.CharField(max_length=40) telefono = models.CharField(max_length=20) email = models.EmailField()Esto representa a una tabla en nuestra base datos que aun no sabemos cual usaremos, luego mas adelante definiremos que base de datos utilizaremos.
La tabla tendrá 3 campos, nombre, teléfono y email.Luego de esto, necesitamos indicarle al proyecto web que utilizaremos la aplicación agendaapp. Realizaremos una modificación en el archivo settings.py en la sección “INSTALLED_APPS” para agregar nuestra aplicación en la ultima linea como se ve aquí.
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'agendaapp', )Ahora vamos a validar nuestro modelo, con el siguiente comando se realizara el chequeo completo y si existe algunos errores, como por ejemplo de syntaxys te avisará.
python manage.py validateSi obtienes el mensaje “0 errors found” es que todo esta correcto.
Configuración de la Base de Datos:
Con Django podemos utilizar distintos motores de bases de datos como por ejemplo: MySQL, PostgreSQL, SQLite y Oracle.
En este ejemplo usaremos la base de datos SQLite, para configurar el uso de este motor deberemos hacer otra modificación al archivo settings.py, buscamos la definición de “DATABASES” y dejamos algo como esto:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'basededatos.db', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } }Aquí indicamos que utilizaremos el motor sqlite3 y el archivo que representara nuestra base de datos tendrá el nombre “basededatos.db”.
Una vez que hayamos definido la base de datos que utilizaremos, podemos hacer el proceso de sincronización para que se creen las tablas, en este caso solo creara una sola tabla para la aplicación agendaapp. Pero dependiendo las aplicaciones que estén en la lista de INSTALLED_APPS la cantidad de tablas variará. Para sincronizar utilizaremos el siguiente comando.
python manage.py syncdbSi todo esta bien, terminara el proceso sin errores. Pero hay algo que falta, Django posee toda una aplicación especialmente diseñada para ayudarnos a administrar nuestro sitio. Para agregar Django Admin necesitaremos agregar una aplicación mas a la lista de INSTALLED_APPS.
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'agendaapp', 'django.contrib.admin', )Ahora volvemos a sincronizar:
python manage.py syncdbCuando se realize este paso, veremos que tenemos la posibilidad de crear un súper usuario, este usuario luego sera el que podrá entrar en la administración.
Con esto ya tendremos las tablas creadas necesarias y ya podemos pasar al siguiente paso.Configuración de la administración de Django:
La administración de Django es una aplicación que administra nuestro sitio pero necesitamos indicarle cual es nuestro dominio. Para realizar esto crearemos un archivo llamado admin.py dentro de la carpeta agendaapp que contendrá el siguiente código:
from django.contrib import admin from agendaweb.agendaapp.models import Personas admin.site.register(Personas)Después vamos a crear un nuevo patrón de url en el archivo urls.py para la administración:
from django.conf.urls.defaults import patterns, include, url from agendaapp.views import personas # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^admin/', admin.site.urls), )Corriendo nuestra aplicación:
Ahora para probar, podemos correr el servidor web de Django.
python manage.py runserverEntra a la siguiente url http://127.0.0.1:8000/admin/ y veras la administración de Django, primero deberás entrar tu usuario y contraseña.
Luego de entrar veremos algo como esto:

El primer item muestra un link para administrar Personas, si hacemos click en el vamos a poder agregar nuevas personas a la guía telefónica.

Creando nuestra vista:
Ahora necesitamos crear una vista, para ello vamos a editar el archivo views.py que se encuentra dentro de la carpeta agendaapp y lo dejamos así:
from django.shortcuts import render_to_response from models import Personas def personas(request): lista = Personas.objects.all() return render_to_response('lista.html', {'lista': lista})Aquí creamos una vista e indicamos que el archivo lista.html sera el archivo de render html y el segundo parámetro es un diccionario con todos los registros.
Ahora necesitamos crear una carpeta llamada “templates” dentro del directorio agendaapp . Luego dentro de este directorio creamos el archivo lista.html con lo siguiente:
Agenda Telefonica
{% for persona in lista %}Nombre Telefono Email {% endfor %}{{ persona.nombre }} {{ persona.telefono }} {{ persona.email }} Ahora nos falta agregar un nuevo patrón de url para que se pueda ver esta nueva vista, para ello editamos el archivo urls.py y agregamos el siguiente patrón:
from django.conf.urls.defaults import patterns, include, url from agendaapp.views import personas # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^agenda/', personas), (r'^admin/', admin.site.urls), )Ahora entra a la siguiente url para ver la vista funcionando: http://127.0.0.1:8000/agenda/

Conclusion:
Como verán, trabajar con este framework es sencillo, en pocos pasos tenemos creado nuestro sitio y trabajando con bases de datos. Hay mucha documentación sobre Django para leer en toda la internet. Yo les recomiendo leer esta que es la mas completa.

3 respuestas y contando...
[...] Link [...]
muy buen aporte !!!
Buenos dias primero que todo muchas gracias por este gran aporte me a servido mucho, pero se me ha generado una duda apartir de este tutorial como puedo hacer para que 2 de los formularios se sumen o resten,
te pongo un ejemplo si en ves de “nombre” y “telefono” pidiera “numero1″y “numero” como son numeros llamo a IntegerField pero me da un error que IntegerField no permite sumar o restar como podría hacerlo mil gracias de antemano por la atención prestada