resumiendo el libro de Django

En mi camino de aprender Django, me encontré con el Djangobook, y a partir de allí El libro de Django, traducción del original hecha entre otros por el amigo Humitos. Ahora les paso un resumen de ese libro, en esta primera entrega llegamos a hacer nuestra primer página dinámica con este framework.

Resumen del Djangobook

Para crear el proyecto mysite en el directorio actual

$ django-admin.py startproject mysite

Crea los siguientes archivos:

__init__.py
: Un archivo requerido para que Python trate a este directorio como un paquete
manage.py: Una utilidad de línea de comandos para interactuar con la aplicación
settings.py: Opciones y configuraciones del proyecto
urls.py: Tabla de contenidos del proyecto

Django trae un pequeño servidor para probar el proyecto. NO usarlo en reemplazo de Apache u otro de producción, es sólo para probar mientras uno desarrolla.

$ python manage.py runserver

Aparece algo parecido a:

Validating models…
0 errors found.
Django version 1.0, using settings ‘mysite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Eso quiere decir que el servidor está corriendo y si voy al navegador y entro en http://localhost:8000 voy a ver la página de prueba.

Ahora que sabemos que funciona, vamos a hacer nuestra primera página dinámica, para empezar haremos una que indique la hora actual. Se debe hacer una *función de vista* (view function) que es una función que toma como argumento una petición web y retorna una respuesta web. Es decir una página, un error 404, un documento, etc. Entonces creamos un archivo llamado vistas.py en el directorio mysite y escribimos:

from django.http import HttpResponse
import datetime

def dia_hora_actual(request):
ahora = datetime.datetime.now()
html = "Ahora es %s." % ahora

return HttpResponse(html)

Repasemos línea por línea:

* Primero importamos la clase HttpResponse
* Luego importamos el módulo datetime desde la biblioteca standard de Python
* Definimos la funcion dia_hora_actual() que es una funcióń de vista. Toda función de vista toma como primer argumento un objeto HttpRequest al que se le asigna el nombre “request”
* Calculamos el valor de ahora mediante la biblioteca estandard de Python
* Generamos el html con la respuesta
* Generamos el objeto HttpResponse con la respuesta. Casi siempre una función de vista es responsable de crear un objeto HttpResponse

Ahora bien, cómo le “decimos” a Django que use ese archivo? Allí empiezan a tallar las *URLconfs*. Son tablas de contenido que le indican a Django “para tal URL usá este archivo, para esta otra URL usá este otro código, etc”

Veamos el archivo urls.py que se generó al crear tu proyecto:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
# Example:
# (r'^mysite/', include('mysite.foo.urls')),

# Uncomment the next line to enable the admin:
# (r'^admin/(.*)', admin.site.root),
)

Repasemos este archivo línea por línea:

Primero importamos todos los objetos desde el módulo django.conf.urls.defaults, en ese paquete obtendremos una función llamada “patterns”

Luego llamamos a esa función patterns() y guardamos el resultado en la variable urlpatterns. El argumento de la función es una cadena vacía. Todas las demás líneas están comentadas.

En este momento nuestra aplicación está en blanco, nueva, entonces Django sabe que debe mostrar la página “It worked!”. Vamos a cambiar este archivo para que podamos mostrar la hora y fecha actuales:

from django.conf.urls.defaults import *
from mysite.vistas import dia_hora_actual

urlpatterns = patterns('',
(r'^time/$', dia_hora_actual),
)

Lo que hacemos es importar la función dia_hora_actual desde vistas.py y por otro lado agregamos la línea (r’^time/$’, dia_hora_actual), que es una tupla compuesta por una expresión regular y la denominacipon de la función. En español, le decimos a Django que toda petición web URL /time sea manejada por la función dia_hora_actual

La expresión regular implica que la URL debe ser exclusivamente “time”. El ^ al principio y el $ al final indican “eso y nada más que eso”.

Ya podemos ir al navegador y ponemos localhost:8000/time y deberemos ver la página que generamos.

Anuncios

2 comentarios to “resumiendo el libro de Django”

  1. Just passing by.Btw, your website have great content!

    _________________________________
    Making Money $150 An Hour

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: