Django 模板引擎与外部 JS 文件
我正在写一个谷歌应用引擎的应用,显然默认的网页应用框架是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