Как использовать обработанные данные с использованием jinja в визуализированном шаблоне, но не отображать его на странице html? - PullRequest
1 голос
/ 20 июня 2020
{% for item in dlist %}
      <p>{{ item }}</p>
{% endfor %}

{% for i in range(dlist|length) %}
    {{ dlist.pop(0) }}
{% endfor %}

После использования списка «dlist» я хочу очистить данные в нем, чтобы при следующей итерации список начинался с размера 0. Но если я сделаю это таким образом при использовании dlist.pop (0) , данные печатаются на моей странице html, и я этого не хочу. Как я могу это сделать?

1 Ответ

1 голос
/ 20 июня 2020

Если вы хотите полностью очистить список, вы можете очистить список, используя метод clear(). Подробности метода можно прочитать в официальной документации .

Разделитель {{}} отобразит результат, даже если это значение None. Нам нужно заблокировать его, так как мы хотим очистить только список и не хотим отображать None после его выполнения. Я добавил условие внутри разделителя, чтобы скрыть None из вывода.

app.py:

from flask import Flask, render_template


app = Flask(__name__)

@app.route("/", methods=["GET"])
def home():
    dlist = ["Ahmedur", "Rahman", "Shovon", "arsho"]
    return render_template("data.html", dlist=dlist)

data.html:

{% for item in dlist %}
    <p>{{ item }}</p>
{% endfor %}

{{ dlist.clear() if dlist.clear()}}

<hr>

{% for item in dlist %}
    <p>{{ item }}</p>
{% endfor %}

Вывод :

очистить список в шаблоне jinja2

Второй для l oop после тега hr не показывает никакого значения в выводе. Поскольку dlist не содержит никакого значения после выполнения метода clear().

...