{# Yksinkertainen ostoskori: tuotteet tavallisina sanakirjoina. Template on kirjoitettu XML:n sääntöjen mukaan, joten se kelpaa tarjoiltavaksi application/xhtml+xml-mediatyypillä. #} {% macro kuvaus(tuote) -%} {{ tuote.tuote }} — {{ tuote.lkm }} kpl à {{ "%.2f"|format(tuote.hinta) }} euroa {%- endmacro %} {% macro toimintopainike(nimi, arvo, teksti) -%}
{%- endmacro %}{{ virhe }}
{% endif %} {% if tuotteet %}{{ kuvaus(tuote) }}
{# Tilaa muuttavat toiminnot POST-metodilla. #} {{ toimintopainike("lisaa", tuote.id, "Lisää yksi") }} {{ toimintopainike("poista", tuote.id, "Poista") }} {# Sama toiminto linkkinä. Osoite muodostetaan url_for-funktiolla, joka hoitaa prosenttikoodauksen, ja Jinja koodaa siitä vielä &-merkit entiteeteiksi. Osoitetta ei siis tarvitse eikä pidä koota itse merkkijonoja liimaamalla. Huomaa kuitenkin, että linkki on GET-pyyntö: selain, välimuisti tai hakurobotti saa toistaa sen vapaasti. Oikeassa sovelluksessa tilaa muutetaan vain POST-metodilla. #}Sama linkkinä: Lisää yksi
Yhteensä {{ "%.2f"|format(summa) }} euroa
{% else %}Ostoskori on tyhjä.
{% endif %} {% if debug %}Tilan pituus: {{ tallenna|length }} merkkiä. Jokainen lomake ja linkki sisältää tämän kokonaisuudessaan, joten sivun koko kasvaa tuotteiden määrän neliössä.
{{ tallenna }}
{% endif %}