Python Flask – Uso de herencia de plantillas

El uso de herencia de plantillas es una técnica poderosa en Flask y en muchos otros sistemas de plantillas web para evitar la duplicación de código en tus plantillas HTML. Te permite crear una plantilla base que contiene la estructura común de tu sitio web y luego extender esa plantilla base en plantillas secundarias para agregar contenido específico a cada página. Aquí tienes cómo puedes utilizar la herencia de plantillas en Flask:

base.html

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Título Predeterminado{% endblock %}</title>
</head>
<body>
    <header>
        <h1>Mi Sitio Web</h1>
        <nav>
            <ul>
                <li><a href="/">Inicio</a></li>
                <li><a href="/acerca">Acerca de</a></li>
            </ul>
        </nav>
    </header>
    
    <main>
        {% block content %}{% endblock %}
    </main>

    <footer>
        &copy; 2015 Mi Sitio Web
    </footer>
</body>
</html>

index.html

{% extends 'base.html' %}

{% block title %}Inicio{% endblock %}

{% block content %}
    <h2>Bienvenido a la página de inicio</h2>
    <p>Este es el contenido de la página de inicio.</p>
{% endblock %}

acerca.html

{% extends 'base.html' %}

{% block title %}Acerca de Nosotros{% endblock %}

{% block content %}
    <h2>Acerca de Nosotros</h2>
    <p>Esta es la página que describe quiénes somos.</p>
{% endblock %}

main.py

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/acerca')
def about():
    return render_template('acerca.html')

if __name__ == '__main__':
    app.run()

Paso 1: Crear una Plantilla Base

Primero, crea una plantilla base que contenga la estructura común de tu sitio web. Puedes nombrar esta plantilla como quieras, por ejemplo, base.html. En esa plantilla, se define bloques (blocks) para el título y el contenido, que se pueden llenar en las plantillas secundarias.

Paso 2: Crear Plantillas Secundarias

Luego, crea plantillas secundarias (index.html) que extiendan la plantilla base utilizando la directiva extends. En estas plantillas secundarias, puedes llenar los bloques con contenido específico. Y otra plantilla llamada acerca.html.

Paso 3: Renderizar las Plantillas en las Vistas

En tus vistas de Flask, puedes renderizar estas plantillas secundarias utilizando render_template. Cuando un usuario acceda a la ruta / o /acerca, Flask renderizará la plantilla correspondiente y la llenará con el contenido específico de cada página.

Deja un comentario