Aprendiendo Django [II] :: Hola mundo

Una vez ya creado nuestro proyecto, comenzaremos a indagar en las bondades que Django nos ofrece, y aunque de igual forma voy aprendiendo conforme voy leyendo y practicando, son notables las ventajas que nos regala.

Hola mundo en Django

Django como bien mencione anteriormente, se basa en la arquitectura de desarrollo MVC (Modelo-Vista-Controlador), que nos permite separar las capas de presentación de las del negocio, así, si en nuestro equipo de trabajo segmentamos diseñadores de programadores, cada quien se hace cargo de lo suyo sin tener que afectar directamente al otro, así que el programador no tiene que andar tocando códigos HTML/CSS y ni el diseñador se mete con código python.

Lo primero que haremos con Django es crear una vista para el clasico Hola Mundo.

Editamos views.py

from django.http import HttpResponse
 
def pagina_index(request):
	html = "<html><body>Hola mundo en django</body></html>"
	return HttpResponse(html)

Donde podemos observar que simplemente hemos declarado una función llamada pagina_index, la cual, recibe un objeto request, usa una variable cadena html donde estructuramos un pequeño fragmento de código HTML, para después retornarlo con otro objeto HttpResponse(html).

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.

Esta función no tendrá efecto hasta no configurar las rutas que podemos especificar en el archivo urls.py

Hay toda una explicación sobre como Django maneja las peticiones y de que forma estructura las url’s para que se vean de una forma muy elegante, así como legibles y claras, y para ello sugiero una lectura mas profunda en el libro.

Configurando en urls.py

from django.conf.urls.defaults import *
from projecto.views import *
 
urlpatterns = patterns('', 
		('^$', pagina_index), 
	)

Lo que hemos hecho aquí es, primero, importar todas las funciones de view.yml en la linea 2: from projecto.views import *

Y segundo, modificar urlpatterns que es un objeto con todas las configuraciones sobre urls que usará la aplicación, inclusive, tiene la potencia de usar expresiones regulares para modificarlas a nuestro antojo, y por ejemplo, tener un apartado donde todas las url’s sean números.

La configuración que le hemos especificado dicta que, la cadena que se ingrese en la url debe ser exactamente la adecuada para responder a ella. En este caso, el símbolo ^ impone que el patrón inicie tal cual se encuentra la estructura, y el símbolo $ que el patrón termine igualmente tal cual , así que, eso será simplemente la raíz '^$', y también se especifica que vista responderá a nuestro patrón, y en este caso, pagina_index.

Así que hechémosle a andar y veremos nuestro primer hola mundo.

$ python manage.py runserver

5 Comments

  1. andresx
    Posted December 13, 2010 at 1:54 pm | Permalink

    Gracias me sirvió.

  2. Posted December 13, 2010 at 5:16 pm | Permalink

    Que bien @andresx, espero no tardar en seguir documentando. Saludos !!

  3. Ramiro Gonzalez
    Posted March 26, 2011 at 11:23 am | Permalink

    Saludos excelente explicacion de Django quiero aprender mas donde puedo ver mas de Django

  4. Posted September 14, 2011 at 10:51 pm | Permalink

    Interesante articulo igual estoy aprendiendo esta forma de desarrollar aplicaciones web

  5. cris
    Posted May 29, 2012 at 3:46 pm | Permalink

    tengo el sigte error, cuando uso esa clave y ese usuario por consola puedo crear la db pero no se porque no se conecto por django me ayudas por favor!!!
    aacevedo@aacevedo-Inspiron-620s:~/Escritorio/prueba$ python manage.py sql appweb
    Traceback (most recent call last):
    File “manage.py”, line 14, in
    execute_manager(settings)
    File “/usr/lib/python2.7/dist-packages/django/core/management/__init__.py”, line 438, in execute_manager
    utility.execute()
    File “/usr/lib/python2.7/dist-packages/django/core/management/__init__.py”, line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File “/usr/lib/python2.7/dist-packages/django/core/management/base.py”, line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
    File “/usr/lib/python2.7/dist-packages/django/core/management/base.py”, line 220, in execute
    output = self.handle(*args, **options)
    File “/usr/lib/python2.7/dist-packages/django/core/management/base.py”, line 286, in handle
    app_output = self.handle_app(app, **options)
    File “/usr/lib/python2.7/dist-packages/django/core/management/commands/sql.py”, line 19, in handle_app
    return u’\n’.join(sql_create(app, self.style, connections[options.get('database', DEFAULT_DB_ALIAS)])).encode(‘utf-8′)
    File “/usr/lib/python2.7/dist-packages/django/core/management/sql.py”, line 26, in sql_create
    tables = connection.introspection.table_names()
    File “/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py”, line 791, in table_names
    cursor = self.connection.cursor()
    File “/usr/lib/python2.7/dist-packages/django/db/backends/__init__.py”, line 250, in cursor
    cursor = self.make_debug_cursor(self._cursor())
    File “/usr/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py”, line 140, in _cursor
    self.connection = Database.connect(**conn_params)
    File “/usr/lib/python2.7/dist-packages/psycopg2/__init__.py”, line 179, in connect
    connection_factory=connection_factory, async=async)
    psycopg2.OperationalError: FATAL: password authentication failed for user “postgres”
    FATAL: password authentication failed for user “postgres”

3 Trackbacks

  1. [...] Aprendiendo Django [I] Aprendiendo Django [II] :: Hola mundo [...]

  2. By Hello world! | Blog de administración on April 7, 2012 at 5:47 am

    [...] 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 [...]

  3. By Montando un «Hola mundo» con Django 1.4 on April 7, 2012 at 8:15 am

    [...] 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 [...]

Post a Comment

Your email is never shared. Required fields are marked *

*
*