在JavaScript中使用Mako模板

2 投票
1 回答
1769 浏览
提问于 2025-04-18 16:12

我正在做一个仪表盘,使用的是 Pythoncherrypy 框架和 Mako 模板语言。

我为每个仪表盘页面准备了一个 html 文件。

在这些文件中,我用 Mako 把一些数据传递给 html 和内嵌的 Javascript

比如说,当我只有一些进程的 ID 列表时,我想显示这些进程的名字,就把一个 Pythondict(字典)传递过去,这个字典把 ID 和对应的名字关联起来,然后在 ${} 标签中使用这个字典。

不过,现在我把这些 Javascript 代码移到一个单独的 .js 文件里时,发现直接把相同的 Mako 代码块放在 Javascript 代码里是行不通的。

有没有办法在一个外部的 .js 文件中使用 Mako 模板语言,而这个文件又是被引入到一个 html 文件里的呢?

这样做算不算不好的做法?我是不是应该在把数据传给 Javascript 时,使用 XMLHTTPRequest 来传递所有这些数据?

1 个回答

1

Ajax是处理这个问题的“正确”方式。

如果你想把值动态地插入到你单独的JavaScript文件中,这个文件就不能再作为静态文件来使用了。此外,这样做还会增加一些额外的安全和维护问题,因为你需要处理字符串转义、可能的脚本注入,以及在你的JavaScript中使用Mako语法。更不用说,这样做会失去在CDN或配置为静态文件的服务器上托管你的.js文件的能力。

撰写回答