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 como utilizar el motor de plantillas en Django, como prácticamente en cualquier lenguaje de programación/framework de hoy en día, Django también tiene su propio motor de plantillas, el cuál permite herencia, contiene su propia sintaxis para recorrer objetos, hacer comprobaciones y funciones para trabajar con el html de la página.

Nosotros vamos a ver un ejemplo de primero, como crear una plantilla base, donde crearemos secciones definidas pero sin contenido, por ejemplo, una sección para el título, otra para el menú, contenido y footer, así todas estas zonas podrán ser dinámicas.

Después crearemos una plantilla que heredará de nuestra plantilla base, y de esta forma podremos ver como utilizar los bloques ya definidos en la plantilla base.

Finalmente pasaremos datos de la vista a la plantilla(si tienes dudas mira este tutorial) y haremos un primer acercamiento a los modelos, viendo simplemente como crear uno, crear una propiedad para obtenerla en la vista y pasarla finalmente a la plantilla.

Aunque no sea una cosa necesaria el diseño lo haremos con bootstrap 3, las cosas hechas con bootstrap siempre se ven mejor, aunque sea un simple ejemplo como este, espero que te guste y te sirva.

Creamos el nuevo proyecto al que vamos a llamar templates


Y ahora creamos nuestra aplicación, a la que vamos a llamar plantillas, porque somos muy originales(cualquier duda visita este tutorial).


Lo primero que podemos hacer es decirle a django donde vamos a tener la carpeta que albergue nuestras plantillas, así que abrimos el archivo templates/settings.py y añadimos este código después de INSTALLED_APPS.


Si tienes dudas con esto visita este tutorial.

Ahora, como ya sabemos, debemos añadir nuestra nueva aplicación a INSTALLED_APPS tal que así.


Como tenemos que mostrar alguna plantilla, vamos a crear una ruta en el archivo urls.py.


Aquí le hemos dicho a Django que en plantillas/views.py tenemos una función llamada home, y que cuando accedamos a http://server/home ejecute lo que dicha función hace, así que vamos a crearla.


Ésto ya debemos conocerlo, lo único nuevo es que vamos a utilizar un modelo para traer una propiedad y mostrarla en nuestra plantilla, así que vamos a crear el modelo y crear la propiedad item para meternos de lleno con el tema en cuestión del tutorial.

Abre el archivo plantillas/models.py y añade el siguiente código.


Ahora que ya tenemos todos las configuraciones, vistas y datos disponibles para mostrarlos en nuestra plantilla, vamos a crear una plantilla base que actuará como molde para el resto de las que nosotros queramos crear.

Si aún no lo has hecho, crea el directorio templates_project en la raíz del proyecto y un archivo llamado base.html, a continuación añade el siguiente código.


Este es el aspecto de una plantilla lista para que la podamos heredar, como vemos, los bloques tienen sus propios nombres, de esa forma podremos acceder a ellos.

Crea ahora un archivo llamado home.html y añade el siguiente código, que aunque sea un poco largo, lo he comentado en cada sección.


Ahora abre la terminal y haz correr el server con el siguiente comando(recuerda estar situado en el proyecto)


Y accede a nuestra plantilla desde http://127.0.0.1:8000/home/, deberás ver una serie de paneles de bootstrap con todos los datos que hemos impreso desde la template, espero que todo te haya funcionado bien, cualquier problema parecido a indentation significa que las tabulaciones no están bien hechas, revisa antes de preguntar por favor, saludos.