Hace poco más de una semana la Django Software Foundation liberó la versión 1.4 de este framework de desarrollo web escrito en Python. Entre las novedades de la nueva versión se encuentra la definición de una nueva estructura de directorios por defecto para los proyectos. El libro de Django aún no esta actualizado para la nueva versión y el tutorial, actualizado ya para Django 1.4, toma como «Hola mundo» el desarrollo de una primera aplicación de encuestas. Pero tomando un poco de aquí y de allá podemos montarnos nuestro «Hola mundo» con Django 1.4 de la siguiente forma.
Una vez tengamos Django 1.4 instalado y trabajando en nuestro sistema, creamos un nuevo proyecto:
Creando nuestro proyecto
| $ django-admin.py startproject proyecto_web
|
Importante remarcar que un proyecto no es una aplicación sino una instancia completa de Django. Nuestro «Hola mundo» será precisamente una de muchas posibles aplicaciones escritas en nuestro proyecto. Aquí podemos ver la estructura por defecto de nuestro proyecto.
| proyecto_web
manage.py
proyecto_web
__init__.py
settings.py
urls.py
wsgi.py
|
Podemos encontrar una descripción detallada de de cada unos de estos archivos y directorios en el tutorial en su apartado «Creando un proyecto».
Creando nuestra aplicación «Hola mundo»
Podemos añadir una nueva aplicación a nuestro proyecto ejecutando, situados en el directorio raíz de nuestro proyecto, el siguiente comando:
| $ python manage.py startapp hola_mundo
|
De esta forma tenemos la siguiente estructura de directorio:
1
2
3
4
5
6
7
8
9
10
11
12 | proyecto_web
manage.py
proyecto_web
__init__.py
settings.py
urls.py
wsgi.py
hola_mundo
__init__.py
models.py
tests.py
views.py
|
Antes de continuar tenemos que contarle a nuestro proyecto que nuestra nueva aplicación esta instalada. Para esto editamos el fichero settings.py y añadimos a la tupla de aplicaciones instaladas del proyecto, INSTALLED_APPS, nuestra aplicación hola_mundo. Quedaría de la siguiente forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
# Nuestra aplicacion hola_mundo
'hola_mundo',
)
|
Con nuestra aplicación añadida y el patrón de diseño MVC, cuya implementación en Django tiene muy ligeras variaciones, en la cabeza podemos comenzar a trabajar en la edición del archivo views.py de aplicación recién creada.
Editando la vista de nuestra aplicación «Hola mundo»
Tenemos que editar el archivo views.py de nuestra aplicación situado en /proyecto_web/hola_mundo/. La función y las sentencias de importación que tenemos que añadir al archivo son:
| from django.http import HttpResponse
def hola(request):
return HttpResponse("Hola mundo con Django 1.4")
|
-
Request es un parametro que todas las funciones vista reciben con información importante sobre la petición.
-
HttpResponse es un objeto para regresar una respuesta generada por la función.
Primero importamos la clase HttpResponse, la cual necesitamos más abajo en nuestro código. A continuación declaramos una función llamada hola, la cual, recibe un objeto request y retornar un objeto HttpResponse instanciado con el texto “Hola mundo con Django 1.4″
Esta función no tendrá efecto hasta no configurar las rutas que podemos especificar en el archivo urls.py
Configurando urls.py
En Django se utiliza el archivo urls.py para mediante expresiones regulares conectar una función de una vista a una URL concreta .En cierta forma en nuestro urls.py tenemos la tabla de contenidos de nuestro sitio web desarrollado con Django. Basicamente es un mapeo entre la direcciones URL y las funciones de nuestras vistas que deben ser llamadas para las URLs.
Para añadir una URL y una vista a nuestro urls.py, tan solo tenemos añadir un patrón URL junto a la vista que le debe dar respuesta. De esta forma conectamos la función hola de nuestro aplicación hola_mundo a la URL /hola/.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'proyecto_web.views.home', name='home'),
# url(r'^proyecto_web/', include('proyecto_web.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
# /hola/ -> hola()
url(r'^hola/$', 'hola_mundo.views.hola'),
)
|
Ahora sólo nos queda iniciar nuestro servidor y buscar nuestro «Hola mundo» en la URL http://127.0.0.1:8000/hola/
| $ python manage.py runserver
|