在JS脚本中使用Jinja变量

时间:2020-05-29 15:52:07

标签: python flask jinja2

我是Flask的新手,正在寻找一种解析Jinja变量的一个或n个值的方法。

应用程序路线将对象移交给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 个答案:

答案 0 :(得分:1)

要获得所需的结果,必须首先将jinja2变量转换为js。

要在模板中执行此操作:

<script>
    const listselection2 = JSON.parse('{{ selection2 | tojson | safe }}');
    //do your stuff with listselection2.
</script>