我正在构建一个基于Python / Flask的Web应用程序。 python脚本生成一个单词及其相应权重的字典。我有一个javascript文件(让我们称之为custom.js
),我从output.html调用它。这个javascript的工作方式是它需要这个字典,然后使用d3.v3.min.js
和d3.layout.cloud.js
创建一个wordcloud。当字典硬编码到custom.js
时,输出文件显示wordcloud。但是,字典值将根据python脚本中的其他参数而更改。因此,我想将这个词典从Python传递给custom.js
。我不知道该怎么做。
我知道可以使用{{ params |safe }}
将参数传递给HTML,但我正在尝试弄清楚如何执行此操作以便custom.js
将接收参数(单词和权重字典,以及这种情况)和词云可以动态呈现。
提前谢谢!
答案 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文件之前。