Использование переменной jinja в скрипте JS - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в Flask и ищу способ проанализировать одно или n значений переменной jinja.

Маршрут приложения передает объект в шаблон html.

`selection2 = db.execute("SELECT user.id, bikes.id, bikes.name, bikeshopname, price, city, img, enddate FROM user LEFT JOIN bikes ON user.id = bikes.userid LEFT JOIN renthistory ON bikes.id = renthistory.bikeid WHERE user.city = :city AND price NOT NULL", city=select_city)
    return render_template("/bikes.html", selection2=selection2)`

В шаблоне я реализовал это так:

{% for row in selection2 %} <p id="enddate" value="{{row["enddate"]}}"></p> {% endfor %}

В функции js я получаю значение (определенную дату) этого конкретного абзаца. Так что это работает для первого элемента.

function getBikeRentEndDate() {
  let enddate = (document.getElementById("enddate").innerHTML);
  document.getElementById('showdate').innerHTML = enddate;
}

Но что я хочу, так это просмотреть все созданные после рендеринга шаблона. А затем показать сообщение, если условие выполнено. Что-то вроде «если дата => сегодня - показать сообщение.

Я знаю, что есть способ, но после долгих исследований, отслеживания и ошибок, я надеюсь, что кто-то сможет указать на это.

1 Ответ

1 голос
/ 29 мая 2020

Для достижения желаемого результата вы должны сначала привести переменную jinja2 к js.

Для этого в вашем шаблоне:

<script>
    const listselection2 = JSON.parse('{{ selection2 | tojson | safe }}');
    //do your stuff with listselection2.
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...