我知道您可以通过在Python文件中包含return render_template('index.html', variable=newvariable)
来简单地从Flask调用变量,并且
<script>
var JSVAR = '{{ newvariable }}';
</script>
index.html文件中的。但是,如果我想将该变量传递到index.html文件中包含的纯Javascript文件,该怎么办?我想我需要使用id参数创建一个HTML'变量'然后使用jQuery来调用它,但我无法弄清楚语法。
有什么想法吗?
答案 0 :(得分:3)
公开一个函数并对它进行ajax调用并不是一个糟糕的方法。这种方法的好处是可以为维护者留下明确的函数调用记录。
http://api.jquery.com/jQuery.ajax/
http://flask.pocoo.org/docs/patterns/jquery/
第二个链接有更详细的描述,但一般的想法是你有一个Flask应用程序设置来处理来自浏览器的请求,并在该应用程序中设置一个方法,可以发送给它的请求将采取小心将你的变量传递给js客户端。
在js脚本中,然后对该方法的url进行ajax调用,并具有处理响应的回调函数。这种方法可以做一些非常非常酷的事情。
如果你不熟悉ajax,谷歌的一些教程可能会有用。这个概述是概述的一半:http://www.tutorialspoint.com/ajax/ajax_in_action.htm
答案 1 :(得分:0)
刚刚遇到同样的问题,这就是我做的事情
from jinja2.environment import Template
def render_js():
file_content = open(path_to_jsfile, 'r').read()
template = Template(file_content)
return template.render(arg1='value1', arg2='value2')