如何在HTML脚本中使用Jinja变量?

时间:2018-05-02 23:48:16

标签: python html scripting jinja2

在我的 application.py 中,我在执行查询并在呈现html模板时发送结果

rows = db.execute("SELECT * FROM fase1 JOIN gamesf1 ON fase1.f1game_id = gamesf1.f1game_id WHERE user_id = :userid AND fase1.f1game_id = :f1gameid",
                  userid=request.args.get("u"), f1gameid=request.args.get("g"))

return render_template("updatef1.html", rows=rows)`

在我的 html 文件中,我可以使用中的变量,如下所示,并使用它们制作表单:

{% for row in rows %}
  <h2>{{(row["f1game_team1"])}} vs. {{(row["f1game_team2"])}}</h2>
  <form action="/f1updated" id="f1update" method="post">
     <input type="number" class="form-control" id="marcadort1" name="marcadort1" value={{(row["marcador_t1"])}} min="0">
     ...
  </form>
{% endfor %}

它运作良好。

我遇到的问题是在同一个 for 循环中编写脚本函数():

<script>
   let form = document.getElementById("f1update");
   form.onsubmit = function() {
      if (form.marcadort1.value == 0 & form.marcadort2.value == 0 & form.primergol.value != "No Goles")
      {
        alert("Si no hay goles, no puedes tener un pais en PRIMER GOL");
        return false;
      }
      if (form.marcadort1.value == 0 &  form.primergol.value == {{(row["f1game_team1"}}))
      {
        alert("No puedes poner PRIMER GOL al pais que tenga marcado 0");
        return false;
      }
   };
</script>

第一个如果工作正常,因为我没有使用任何变量。但第二个if使用变量 {{(row [“f1game_team1”}} 并给我一个解析错误:意外的令牌{

有关如何在函数脚本中使用这些变量的任何帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否只是错过了这一行中括号的顺序?

if (form.marcadort1.value == 0 &  form.primergol.value == {{(row["f1game_team1"}}))

我认为应该是

if (form.marcadort1.value == 0 &&  form.primergol.value == {{(row["f1game_team1"])}})

最好从传递给模板的内容初始化JavaScript变量,以便更容易调试,并避免此类陷阱。

此外,您应该查找&&&运算符之间的区别,因为我相信您并不是指您所写的内容。