如何在静态文件中使用 django 模板语法
Posted
技术标签:
【中文标题】如何在静态文件中使用 django 模板语法【英文标题】:How to use django template syntax in static files 【发布时间】:2019-06-26 22:54:23 【问题描述】:在 Django 模板中包含静态文件有很多可用的文档。但是,我找不到任何关于如何在静态文件中使用 Django 模板语法的信息。
我有一个 html 文件,其中包含这样的标签之间的 javascript:
var nodes = JSON.parse('nodes|safe');
我现在将所有 javascript 移动到我正在服务的静态 .js 文件中。它包含在 HTML 文件中,如下所示:
<script src="% static 'citator/analysis.js' %" type="text/javascript"></script>
除了 .js 文件中使用 Django 模板语法的部分之外,一切运行良好。
我的问题是,如果 javascript 不是直接在模板中,而是作为静态文件并导入,有没有办法在 javascript 中使用 Django 模板语法?还是我必须在模板中获取上下文数据,然后将其传递给静态文件中的函数?
【问题讨论】:
【参考方案1】:不幸的是,没有任何 Django 功能可以让您直接执行此操作。阻止这种情况的根本问题是上下文被传递给视图中render()
函数中提到的模板(或任何其他行为相同的函数,例如render_to-response()
)。这里最好的选择是在模板文件中使用内联 js。
可以理解,为了保持代码干净,您不希望模板中包含 js 函数。所以,像这样获取你想要的数据:
<script>
var nodes = JSON.parse('nodes|safe');
</script>
在此代码之后导入您的静态 js 文件,然后您就可以开始了,保持您的代码干净和模块化。
【讨论】:
好的。谢谢你!以上是关于如何在静态文件中使用 django 模板语法的主要内容,如果未能解决你的问题,请参考以下文章
Django——模板路径 模板变量 常用过滤器 静态文件的使用