Django 模板引擎与外部 JS 文件

0 投票
2 回答
1513 浏览
提问于 2025-04-16 03:55

我正在写一个谷歌应用引擎的应用,显然默认的网页应用框架是Django的一个子集。所以我在使用它的模板引擎。

我的问题是,如果我有以下代码:

    template_values = {
   'first':first,
   'second':second,
  }

  path = os.path.join(os.path.dirname(__file__), 'index.html')

  self.response.out.write(template.render(path, template_values))

我想在从index.html引入的外部JavaScript文件中引用模板值first,我是不是可以继续在index.html中使用{{ first }},还是说我需要以某种方式告诉框架关于example.js的事情,这样它才能知道在哪里替换这个引用呢?

2 个回答

3

把值直接插入到JavaScript里可能不是个好主意;其实让脚本保持静态,然后从网页的结构中获取数据(假设这些数据是你正在渲染的HTML页面的一部分),或者通过AJAX请求从服务器获取所需的数据,这样不是更合理吗?

1

免责声明:我对应用引擎的了解有限,所以这个回答可能不太符合你的需求。

在Django中,如果你想把变量从视图传递到JS文件,你需要确保这个文件是通过模板引擎来解析的。简单来说,就是这个文件必须由Django来提供服务。举个例子,如果你有一个JS文件放在一个叫media的目录里,而这个目录是由Nginx来提供服务的,那么你就不能在这个JS文件里使用模板变量。

我觉得应用引擎也应该是这样。不过,还是要注意免责声明。我可能完全错了 :P

撰写回答