javascript - Django 在模板中向 Javascript 发送数据
问题描述
我想为我提取的文档之间的一些链接制作一个非常简单的网络图,并将其显示在现有的 Django 应用程序中。我已经看过一堆 Bokeh/Django 集成和类似的东西,但似乎没有什么合适的。因此,我决定继续尝试 D3。我不知道任何Javascript。我复制了此处提供的模板:http: //bl.ocks.org/mbostock/2706022,这对我来说很好。我需要做的就是提供我自己的数据。我可以在视图中建立一个字典列表并将它们作为上下文传递。我可以使用 {{ data }} 在模板中访问该上下文。但是,我不知道如何将其提供给 javascript。这是我需要更改的相关部分:
var links = [
{source: "Microsoft", target: "Amazon", type: "licensing"},
{source: "Microsoft", target: "HTC", type: "licensing"},
{source: "Samsung", target: "Apple", type: "suit"},
{source: "Motorola", target: "Apple", type: "suit"},
{source: "Nokia", target: "Apple", type: "resolved"},
...
{source: "Nokia", target: "Qualcomm", type: "suit"}
];
这看起来像一个字典列表。但我不知道,那里有一些空话,所以我不确定 Javascript 是如何看待这件事的,以及如何将 python 上下文转换为任何内容。我想象一些类似的东西
var links = <cast>({{data}})
如何实现这一点,以便我可以将这个 D3 代码传递给我自己的数据?
解决方案
您可以构建字典列表并将其作为 JSON传递给您的模板。
然后在 javascript 中解析您的 JSON 字符串。
在 python 中使用data = json.dumps(your_list_of_dict)
,在 javascript 中使用var links = JSON.parse('{{data}}');
. 对于潜在的报价问题,您可能需要做更多的事情。
推荐阅读
- javascript - 无法在视图目录中查找视图“index.ejs”
- ios - Swift:如何将 [String:Any] 数组转换为特定数组
- python-3.x - ValueError:未知标签类型
- javascript - 我如何保持一组包含在 div 内联中的元素?
- mongodb - 创建 AMI 映像时 MongoDB 服务器实例关闭
- serialization - 如何在 JPEG 中序列化量化的 DCT 系数?
- javascript - php获取没有密钥的POST数据
- javascript - iTextSharp - 向现有 PDF 添加两行文本
- outlook-addin - 使用 MAPI 读取具有 RMS 保护的电子邮件正文
- java - java jlink endian 是特定的吗?