Ereditarietà

Puoi notare navigano su qualsiasi sito web che alcuni elementi sono presenti in diverse pagine web.

Per esempio la barra di navigazione è un elemento comune nelle pagine in un sito.

Immagina di avere file separati per ogni pagina web e di voler modificare la barra di navigazione. Dovresti cambiare il contenuto di ogni template del sito, una ad una, un lavoro enorme!

Per risolvere questo problema, i file dei template vengono utilizzati per condividere il contenuto di più template.

I delimitatori di dichiarazione in Jinja2 sono usati per identificare l'area del template in cui il contenuto specifico sarà sostituito.

<html>
  <head>
    <title>Mio sito web</title>
  </head>
<body>
 {% block content %}{% endblock %}
</body>
</html>

Per questo esercizio chiameremo l'esempio sopra con prova.html.

Per ereditare questo contenuto in un altro template useremo la dichiarazione extends. Il codice da sostituire dovrà poi essere avvolto da {%block content%} e {%endblock%}.

Nel codice sotto riporto quello che sarà posizionato nella pagina ipotetica index.html.

{% extends "prova.html"  %}

{% block content %}
   <p>Benvenuto su tuttofaredigitale.it</p>
{% endblock %}

Il risultato sarà il seguente (quando route restituisce render_template("index.html") la pagina renderizzata avrà questo contenuto.

<html>
  <head>
    <title>Mio sito web</title>
  </head>
<body>
  <p>Benvenuto su tuttofaredigitale.it</p>
</body>
</html>

<<<

Nessun argomento precedente

>>>

Nessun argomento seguente
Back-end e front-end
Vai alla pagina
Introduzione a Flask
Vai alla pagina
Template con Jinja2
Vai alla pagina
Controllo del Flusso
Vai alla pagina
Ereditarietà
Vai alla pagina
Form di contatto
Vai alla pagina
Flask SQLAlchemy
Vai alla pagina