Templates y Tags en Django: Creación de Aplicaciones Web
Clase 15 de 32 • Curso de Django
Resumen
Exploraremos los templates en Django y sus funcionalidades avanzadas que los diferencian del HTML estándar. Aprenderemos cómo los templates nos permiten mostrar contenido dinámico en el navegador, validar variables, recorrer listas y aplicar filtros para modificar valores antes de mostrarlos. También veremos cómo reutilizar contenido común mediante el archivo base HTML.
¿Qué son los templates en Django?
Los templates en Django son archivos HTML que incluyen funcionalidades adicionales para mostrar contenido dinámico. A diferencia del HTML puro, los Django templates permiten:
- Mostrar variables
- Realizar validaciones con
if
- Recorrer listas con
for
¿Cómo se muestran variables en un template?
Para mostrar variables, se encierran en dobles llaves {{ }}
. Por ejemplo, para mostrar una variable llamada var
del contexto, se usaría:
{{ var }}
¿Qué son y cómo se utilizan los filtros en Django?
Los filtros permiten modificar el valor de una variable antes de mostrarla. Se usan con un pipe |
seguido del nombre del filtro. Por ejemplo, para mostrar solo el día y mes de una fecha:
{{ fecha_nacimiento|date:"m/d" }}
Los filtros pueden concatenarse. Por ejemplo, convertir el resultado en minúsculas:
{{ fecha_nacimiento|date:"m/d"|lower }}
¿Qué son los tags en Django y cómo se utilizan?
Los tags agregan funcionalidades adicionales al código HTML. Se abren con {% %}
y pueden incluir:
if
: para validacionesfor
: para recorrer listasurl
: para mostrar URLs dinámicas
Algunos tags requieren una etiqueta de cierre. Por ejemplo, if
y for
:
{% if condition %}
<!-- contenido -->
{% endif %}
¿Qué es el archivo base HTML en Django?
El archivo base.html
permite definir contenido común para ser reutilizado en la aplicación. Se crean bloques que pueden extenderse en otros archivos. Por ejemplo:
<!-- base.html -->
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<div id="content">
{% block content %}
{% endblock %}
</div>
</body>
</html>
Para reutilizar este contenido:
<!-- new_template.html -->
{% extends "base.html" %}
{% block content %}
<!-- contenido específico -->
{% endblock %}