通过HTML将参数从Python Flask应用程序传递到Javascript文件

时间:2017-06-19 01:19:11

标签: javascript python flask

我正在构建一个基于Python / Flask的Web应用程序。 python脚本生成一个单词及其相应权重的字典。我有一个javascript文件(让我们称之为custom.js),我从output.html调用它。这个javascript的工作方式是它需要这个字典,然后使用d3.v3.min.jsd3.layout.cloud.js创建一个wordcloud。当字典硬编码到custom.js时,输出文件显示wordcloud。但是,字典值将根据python脚本中的其他参数而更改。因此,我想将这个词典从Python传递给custom.js。我不知道该怎么做。

我知道可以使用{{ params |safe }}将参数传递给HTML,但我正在尝试弄清楚如何执行此操作以便custom.js将接收参数(单词和权重字典,以及这种情况)和词云可以动态呈现。

提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要在烧瓶后端创建一个视图函数(路径),其中包含这个/get_dictionary的URL。此功能可能如下所示:

来自烧瓶导入请求的

,jsonify ...

@app.route('/get_dictionary'):
def get_dictionary():
    ...
    your_dictionary = []
    # Fill in your_dictionary with data
    ...
    render_template('your_template.html', your_dictionary=your_dictionary)

编辑:

您可以使用标准的jinja2表示法将数据从flask传递到html模板的script部分:

<html>
<head>
  <script>
    your_dictionary = {{ your_dictionary | tojson }}
    <!-- Do what you need with your_dictionary -->
  </script>  
  ...
</head>
...

答案 1 :(得分:0)

您可以尝试在模板html中定义一个变量,如下所示:

<script>
        var your_var = '{{ value }}'
</script>

然后在外部js文件中使用“ your_var”。但是请确保上面的定义在您的js文件之前。