Controllo del Flusso

Grazie a Flask si può controllare il flusso come in un normale script in Python anche nei nostri template. L'inclusione di condizionamenti if e if/else ci permette di controllare come vengono gestiti i dati.

Per utilizzare le dichiarazioni in un template si utilizza il delimitatore di dichiarazioni: {% %}.

{% if condition %}
 <p>Testo restituito se la condizione è True</p>
{% endif %}

Il delimitatore {% endif %} è necessario per chiudere la dichiarazione if.

La condizione può includere una variabile che viene testata utilizzando operatori di confronto standard, <, >, >=, <=, >=, ==, !=.

{% if variabile_template == "Benvenuto" %}
 <p>{{variabile_template}} su tuttofaredigitale.it</p>
{% endif %}

All'interno dei delimitatori di frase {% %} possiamo accedere alle variabili senza usare il consueto delimitatore di espressione {{ }}.

Una variabile definita come None o False o uguale a 0 o contenente una sequenza vuota come "" o [] verrà testata come False.

I delimitatori {% else %} e {% elif %} possono essere inclusi per creare sequenze multiple se le affermazioni.

Loop For

I processi ripetitivi sono di uso comune nella maggior parte delle applicazioni informatiche e nei template non è diverso. La creazione di liste, tabelle sono tutti compiti ripetitivi che possono essere risolti utilizzando il for loop.

Usando lo stesso blocco di delimitazione delle dichiarazioni come hai visto per l'if {% %}.

<ol>{% for x in range(3) %}
 <li>{{ x }}</li>
{% endfor%}
</ol>

# Output:
1. 0
2. 1
3. 2

La sintassi è simile a quella di un normale for in Python. La variabile del loop locale può essere usata all'interno del loop con l'espressione delimitatore {{ }}.

Simile alle affermazioni if dobbiamo chiudere il loop con la dicitura {%endfor%}.

Di seguito sono riportate alcune altre applicazioni di un for loop.

In una lista:

{% for elemento in template_lista %}

In una stringa:

{% for carattere in "Stringa" %}

Iterate in un dictionary:

{% for chiave in template_dict %}

Iterate con chiavi ed i valori di un dictionary con item():

{% for chiave, valore in template_dict.items() %}

Usando il dictsort del filtro in un loop, le coppie chiave/valore vengono emesse proprio come items().

<<<

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