javascript - 在 Javascript 中使用 Mako 模板

标签 javascript jquery python html mako

我有一个仪表板,我正在使用 Python cherrypy 框架和 Mako 模板语言。

我为每个仪表板页面创建了一个 html 文件。

在那里,我使用 Mako 将一些数据传递给 html 并内联 Javascript

例如,为了在只有 id 列表时显示某些进程的名称,我传递了一个 Python dict 将 id 映射到它们相应的名称,并且然后在 ${} 标签中使用字典。

但是,由于我现在将这些 Javascript 代码移动到一个单独的文件中,扩展名为 .js,我发现只需将相同的 Mako Javascript 代码中的代码块不起作用。

有什么方法可以在导入到 html 文件中的外部 .js 文件中使用 Mako 模板语言?

这是否被认为是一种不好的做法,当我将它们传递给 Javascript 时,我是否应该使用 XMLHTTPRequest 传递所有这些数据?

最佳答案

Ajax 是执行此操作的“正确”方法。

为了将值动态地插入到单独的 Javascript 文件中,它不能再作为静态文件使用。除此之外,它还增加了一层额外的安全性和可维护性问题,因为您必须处理字符串转义、可能的脚本注入(inject)以及在 Javascript 中使用 Mako 语法。更不用说失去在为静态文件配置的 CDN 或服务器上托管 .js 文件的能力。

关于javascript - 在 Javascript 中使用 Mako 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156170/

相关文章:

javascript - 访问 Stripe 支付元素的加载状态

javascript - AngularJS:用动画交换 ng-repeater 中的两个项目

JQuery - 如何将单个 html 标记添加到某些 html?

javascript - 跨所有 View 调用 CoffeeScript 函数 (Ruby on Rails)

python - 使用 vim、shell 或 python 移动小数点

Python 和 Regex 将书面数字转换为数字

javascript - 持续关注 NodeJS 中的文件变化

javascript - 通过鼠标移动绘制的矩形会在鼠标移动时不断绘制自身,同时显示之前的矩形

javascript - jQuery:如果只有 2 个子对象(或更少),则隐藏父对象

python - 线程后的代码提前执行,为什么?