2017-08-29 1 views
0

Comment attribuer une valeur de variable jinja2 à utiliser ultérieurement dans un modèle?Comment affecter une valeur de variable jinja2 à utiliser ultérieurement dans un modèle?

{% if 'clear' in forcast_list[4] %} 
{% img = "sunny.png" %} 
{% elif "cloudy" in forcast_list[4] %} 
{% img = "sun-cloudy-thunder.png" %} 
{% endif %} 

<div style="background: right bottom no-repeat url('../static/img/{{img}}')" class="weather-icon-pos"> 
    <!-- weatehr Icon div --> 
</div> 

toute aide serait grandement appréciée.

+0

variables jinja2 sont passées de votre application Flask. Vous devez les spécifier dans votre code 'render_template()' – Mangohero1

Répondre

1

Utilisation {% set %}:

{% if 'clear' in forcast_list[4] %} 
{% set img = "sunny.png" %} 
{% elif "cloudy" in forcast_list[4] %} 
{% set img = "sun-cloudy-thunder.png" %} 
{% endif %} 

Plus d'informations sur les affectations dans jinja2 here.

Ou tout simplement faire le python et dans les conditionals passer le résultat modèle jinja2:

if 'clear' in forcast_list[4]: 
    img = "sunny.png" 
elif 'cloudy' in forcast_list[4]: 
    img = "sun-cloudy-thunder.png" 
... 
return render_template('foo.html', img=img) 
+0

est-il impossible de définir une valeur de variable à l'intérieur de jinja? –

+0

@Ciastopiekarz a fait un peu creuser. voir ma réponse mise à jour – Mangohero1