将Flask(python)中的变量传递到与HTML文件分开的Javascript文件中

时间:2013-11-27 06:33:53

标签: javascript jquery python html flask

我知道您可以通过在Python文件中包含return render_template('index.html', variable=newvariable)来简单地从Flask调用变量,并且

<script>
var JSVAR = '{{ newvariable }}';
</script>
index.html文件中的

。但是,如果我想将该变量传递到index.html文件中包含的纯Javascript文件,该怎么办?我想我需要使用id参数创建一个HTML'变量'然后使用jQuery来调用它,但我无法弄清楚语法。

有什么想法吗?

2 个答案:

答案 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')