Formulario de Contacto y envío de emails con Django
Formulario de Contacto y envío de emails con Django

En este tutorial vamos a ver un primer acercamiento al framework Django, el más famoso y utilizado en lo que respecta al lenguaje de programación python. Para empezar simplemente haremos un típico hola mundo, y de paso, enviaremos variables y tuplas a una vista para ver como podemos mostrar estos datos de forma sencilla.

También veremos como crear el directorio templates y como decirle a django su localización, toda esta información estará en el archivo settings.py de nuestro proyecto.

Si ya seguiste el tutorial de instalación de python y django podemos continuar sin problemas el tutorial.

Crear un nuevo proyecto en Django

Primero debemos colocarnos en el directorio donde queramos crear nuestro proyecto, y una vez situados crearlo con el siguiente comando desde la terminal.

Esto nos creará un nuevo proyecto con lo más básico, ahora podemos acceder a dicho directorio.

Y crear nuestra primera aplicación, una aplicación en django es un modulo independiente con todos los archivos necesarios para poder utilizarlo dentro de un proyecto.

Si entramos ahora a nuestro proyecto, veremos como una carpeta llamada saludo ha sido creada en la raíz, ésto es una aplicación, completamente independiente, con sus vistas, modelos, podemos crear sus propios formularios, archivos de urls etcétera.

Si ahora haces correr el proyecto desde la terminal.

Y accedes a http://127.0.0.1:8000/, verás como django te da la bienvenida.

Hola mundo en Django

Lo primero que debemos hacer es decirle a django que hemos creado una nueva aplicación, así que abre el archivo alojado en holamundo llamado settings.py, busca la tupla INSTALLED_APPS y añade al final la aplicación saludo de la siguiente forma.

Registrar el directorio templates

Crea un nuevo directorio en la raíz del proyecto llamado templates, aquí se supone que es donde guardaremos los archivos html con los que mostraremos el contenido al usuario final. Ahora debemos decirle a django donde está alojado este directorio, así que abre de nuevo el archivo settings.py y modifica la tupla TEMPLATES.

Crear una nueva url en django

Para decirle a django que queremos que por ejemplo, desde la url http://127.0.0.1:8000/holamundo/ queremos mostrar algo, debemos registrar en este caso la ruta holamundo desde el archivo urls.py del directorio del proyecto, así que ábrelo y añade lo siguiente debajo de la ruta del admin.

Simplemente le estamos diciendo a django que en la aplicación llamada saludo que hemos creado, y dentro del archivo views.py, tenemos una función llamada saludo, y, que cuando accedamos a http://127.0.0.1:8000/holamundo/ queremos que ejecute lo que esa función haga, así de sencillo.

Entonces debemos crear dicha función, así que abre el archivo saludo/views.py y añade el siguiente código.

Como podemos ver, tenemos una función llamada render que importamos desde la clase shortcuts. La función saludo que hemos creado es la que le hemos dicho al archivo urls.py que tome en cuenta cuando estemos en http://127.0.0.1:8000/holamundo/, creo que aunque no conozcas mucho sobre django, si eres programador entenderás lo que hace dicha función. Simplemente mandamos ciertos datos a un archivo llamado saludo.html que por defecto estará en el directorio templates, así que crea el archivo, ábrelo y añade el siguiente código.

Este es el aspecto del motor de plantillas que trae por defecto django y que nos permite acceder a la información, como puedes ver es muy simple.

Si ahora abres la terminal y haces correr el servidor de nuevo.

Y accedes a http://127.0.0.1:8000/holamundo/ verás la información que hemos pasado desde la vista saludo/views.py.

Si tienes algún error parecido a IndentationError simplemente es que la identación no es correcta, django trabaja con tabulaciones, así que tabula las líneas que hemos escrito de nuevo, que a veces por copiar y pegar pasan estos pequeños problemas.

Y espero no haberme dejado nada, creo que es suficiente para que tu proyecto funcione correctamente, un saludo.