【发布时间】:2013-09-21 00:56:59
【问题描述】:
我是一个使用 Flask 框架(以及通常的客户端-服务器)的真正菜鸟,所以请耐心等待。我有一个基本的 HTML 模板文件,其中包含一些 Flask(使用 {% ... %} 符号)从 python 文件中传入 JSON 对象。现在,作为一个简单的完整性检查,它将motifs(数组数组)的内容作为无序列表(<ul>)中的单独行(<li>)输出。
我希望它做的是使用 JavaScript 脚本中的 motifs 数组作为我正在尝试做的可视化的数据。我尝试将 Flask 脚本混合到迭代出 JavaScript 数组的 JavaScript <script> 标记中,但得到一个错误,即脚本标记不喜欢 Flask 表示法 (Uncaught SyntaxError: Unexpected token }。那么我该如何让 Flask 脚本咳嗽将数组用于 JavaScript 脚本?我意识到我可能在这里误解了一些东西(也许是 JSON 的本质?)。如果您能在正确的方向上做出任何推动,我将不胜感激。谢谢!
下面我将我的 html 模板包含在创建无序列表的 Flask 脚本中,我还在 <script> 标记中包含了我使用 Flask 脚本失败的尝试。那么如何在 JavaScript 中成功访问数组(JSON)?
index.html(一个模板文件 - 为了清楚起见,这里简化了):
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<p>Here are some motifs:</p>
<ul>
{% for motif in motifs %}
<li>{{motif}}</li>
{% endfor %}
</ul>
<script>one of a few js scripts</script>
</body>
</html>
上述文件的输出如下所示(缺少未复制的项目符号):
这里有一些图案:
{'gene1': 1, 'gene2': 1, 'gene3': 7, 'gene4': 7, 'gene5': 1}
{'gene1': 7, 'gene2': 4, 'gene3': 10, 'gene4': 5, 'gene5': 2}
{'gene1': 7, 'gene2': 1, 'gene3': 8, 'gene4': 5, 'gene5': 8}
{'gene1': 2, 'gene2': 4, 'gene3': 6, 'gene4': 1, 'gene5': 9}
{'gene1': 3, 'gene2': 8, 'gene3': 2, 'gene4': 7, 'gene5': 8}
{'gene1': 1, 'gene2': 5, 'gene3': 1, 'gene4': 9, 'gene5': 5}
{'gene1': 3, 'gene2': 5, 'gene3': 6, 'gene4': 10, 'gene5': 9}
{'gene1': 2, 'gene2': 10, 'gene3': 7, 'gene4': 5, 'gene5': 10}
{'gene1': 5, 'gene2': 5, 'gene3': 10, 'gene4': 10, 'gene5': 5}
{'gene1': 10, 'gene2': 4, 'gene3': 4, 'gene4': 6, 'gene5': 4}
以下是我在<script> 中访问Flask 传递的数组(JSON 对象)失败的尝试:
<script>
var motifValuesArray = [];
var index = 0; // an iterator to assign indexes in the javascript array
{% for motif in motifs %}
motifValuesArray[index] = {motif};
console.log(motifValuesArray[index]);
{% endfor %}
</script>
【问题讨论】:
-
你能添加一个生成的 HTML/Javascript 的例子吗?
-
@Kyle - 上面我给出了一个在
- 中输出的文本示例,尽管我希望将其转换为 JS 数组而不是打印在屏幕上。这有意义吗?
-
@myusuf3 - 这个问题并不是真正的重复。作者清楚地知道如何将数据从 Flask 传递到 javascript——他们需要帮助以正确的 JSON、数组格式。
-
@gromiczek - 我很想看看渲染的内容,看看会出现什么问题。您总是可以将整个图案数组作为 JSON 注入,然后将其分解为数组
motifs = {{json.dumps(motifs)}}; -
@ myusuf3 在他上面的评论中的重复引用比当前引用的要好得多。具有重复标记权限的人可以更改重复引用吗?谢谢!
标签: javascript python arrays json flask