es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Variable de bucle de Jinja2 para mostrar la suma.

Estoy intentando hacer un bucle for de Jinja2 para tener una suma acumulada de un saldo bancario utilizando datos de mi base de datos de MySQL.

{% set total = 0 | int%}
{% for row in data %}
{% if row[‘outcome’] == 0 %}
{% set total = total – row[‘stake’] | int %}
{% else %}
{% set total = total + ((row[‘stake’])*(row[‘odds’])) | int %}
{% endif %}
{{total|int}}
{% endfor %}

pero mi salida en la página HTML siempre muestra todos los números juntos.

¿Alguna idea de cómo solucionarlo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes usar el filtro integrado de Jinja2 llamado safe para mostrar la suma en ejecución del bankroll como HTML.

    Reemplaza {{total|int}} con {{total|int|safe}}. Esto le indicará a Jinja2 que la salida es segura y no debe ser escapada.

    Tu código actualizado de Jinja2 debería verse así:

    {% set total = 0 | int%}
    {% for row in data %}
    {% if row['outcome'] == 0 %}
    {% set total = total - row['stake'] | int %}
    {% else %}
    {% set total = total + ((row['stake'])*(row['odds'])) | int %}
    {% endif %}
    {{total|int|safe}}
    {% endfor %}
    

    Ahora, la salida en la página HTML se mostrará formateada correctamente, con cada suma del bankroll en ejecución en una nueva línea.

Comments are closed.