我是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;
}
但是我想要的是在渲染模板后查看所有创建的内容。如果条件为真,然后显示一条消息。诸如“如果日期=>今天-显示一条消息。
我知道有办法,但是经过一段时间的研究,跟踪和错误,我希望有人能指出来。
答案 0 :(得分:1)
要获得所需的结果,必须首先将jinja2变量转换为js。
要在模板中执行此操作:
<script>
const listselection2 = JSON.parse('{{ selection2 | tojson | safe }}');
//do your stuff with listselection2.
</script>