【问题标题】:How can I pass a jinja2 object to a jquery function as parameter?如何将 jinja2 对象作为参数传递给 jquery 函数?
【发布时间】:2018-05-25 09:23:03
【问题描述】:

在我的 python 脚本中,我有这样的东西

students = getStudent()  
return render_template('index.html', students = students)

students 是一个学生列表,每个学生都有 name、id、gpa、...等属性。

在 index.html 中,我有这样的选择

 <select class="form-control" onchange="changeStudent">
     {% for student in students %}
         <option>{{student.name}}</option>
     {% endfor %}
 </select>

现在我想实现一个 jquery 函数,例如,如果该学生被选中,可以打印出学生信息。

function changeStudent(student) {
    alert(student.name)
}

我该怎么做?提前致谢。

【问题讨论】:

  • 脚本和html文档在同一个页面吗?还是在外部文件中?
  • 在当前实现中,脚本在外部,但如果在 html 文档中更容易执行,我可以更改。
  • 是的,在同一个文件中更容易做到
  • 这只是普通的 JavaScript :P 与 jQuery 无关
  • 如果它在同一个文件中,您可以像在 Html 中一样调用变量名

标签: javascript jquery python jinja2


【解决方案1】:

如果您在 HTML 中使用内联 &lt;script type="application/javascript"&gt; 元素,则可以直接将其放入其中。

只需确保上下文中的对象是 JSON 格式的字符串,并且数据是真正的 safe。

view.py

import json
def index_view():
    students = json.dumps(getStudent())
    return render_template('index.html', students = students)

index.html

<html>
<body>
    <script type="application/javascript">
      var students = {{ students|safe }};
      // do your thang...    
    </script>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2013-01-27
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2018-03-15
    相关资源
    最近更新 更多