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.
1 Marzo 2009 a 11:52
Just passing by.Btw, your website have great content!
_________________________________
Making Money $150 An Hour
21 Octubre 2009 a 18:23
como configuro el archivo setting.py