Django - 将 python 数据传递给 javascript
Django - passing python data to javascript
我的 js.html 中有一个 javascript 代码:
{% load static %}
<script src="{% static "vis.js" %}"></script>
<div id="mynetwork"></div>
<script type="text/javascript">
var nodes = new vis.DataSet([
{'id': 1, 'label': 'node 1'},
{'id': 2, 'label': 'node 2'},
{'id': 3, 'label': 'node 3'},
{'id': 4, 'label': 'node 4'},
{'id': 5, 'label': 'node 5'}
]);
var edges = new vis.DataSet([
{'from': 1, 'to': 3},
{'from': 1, 'to': 2},
{'from': 2, 'to': 4},
{'from': 2, 'to': 5},
{'from': 3, 'to': 3}
]);
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {};
var network = new vis.Network(container, data, options);
</script>
我有一个名为 nodeJS 的 python 变量,它在打印时采用以下形式:
[{'id': 1, 'label': 'node 1'},
{'id': 2, 'label': 'node 2'},
{'id': 3, 'label': 'node 3'},
{'id': 4, 'label': 'node 4'},
{'id': 5, 'label': 'node 5'} ]
这与 javascript 将使用的形式相同。在我的 views.py 中,我只是在上下文中传递 nodeJS 变量。现在我想用这种风格编写我的 js 代码:
var nodes = new vis.DataSet({{nodesJS}});
问题是它不起作用。有没有办法让 js 处理我想要的 python 变量?
您可以使用 safe 标签 - {{ nodeJS|safe }}
.
[Safe] marks a string as not requiring further HTML escaping prior to output.
我的 js.html 中有一个 javascript 代码:
{% load static %}
<script src="{% static "vis.js" %}"></script>
<div id="mynetwork"></div>
<script type="text/javascript">
var nodes = new vis.DataSet([
{'id': 1, 'label': 'node 1'},
{'id': 2, 'label': 'node 2'},
{'id': 3, 'label': 'node 3'},
{'id': 4, 'label': 'node 4'},
{'id': 5, 'label': 'node 5'}
]);
var edges = new vis.DataSet([
{'from': 1, 'to': 3},
{'from': 1, 'to': 2},
{'from': 2, 'to': 4},
{'from': 2, 'to': 5},
{'from': 3, 'to': 3}
]);
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {};
var network = new vis.Network(container, data, options);
</script>
我有一个名为 nodeJS 的 python 变量,它在打印时采用以下形式:
[{'id': 1, 'label': 'node 1'},
{'id': 2, 'label': 'node 2'},
{'id': 3, 'label': 'node 3'},
{'id': 4, 'label': 'node 4'},
{'id': 5, 'label': 'node 5'} ]
这与 javascript 将使用的形式相同。在我的 views.py 中,我只是在上下文中传递 nodeJS 变量。现在我想用这种风格编写我的 js 代码:
var nodes = new vis.DataSet({{nodesJS}});
问题是它不起作用。有没有办法让 js 处理我想要的 python 变量?
您可以使用 safe 标签 - {{ nodeJS|safe }}
.
[Safe] marks a string as not requiring further HTML escaping prior to output.