Skip to main content
 首页 » 编程设计

python之<script> 与包含在 Django 模板中

2024年11月01日20unruledboy

我可以通过两种方式将 javascript 文件提取到我的模板中。我可以使用标签加载它们,也可以使用 Django 的 include 标签加载它们以呈现为模板。

假设我希望我的 javascript 文件能够访问呈现上下文。我有兴趣通过使用反向 URL 语法 {% url app.views.something %} 引用 Django View 来命名发布 ajax 请求。我可以轻松地将 URL 硬编码到我的 JS 文件中,这样会降低它们的可重用性。

使用 include 使我的 url 正确呈现有什么缺点?显然这意味着更多的服务器端工作,但这意味着更多吗?标签还需要从服务器请求数据,所以我怀疑带宽是否受到影响。本质上,我们将两个 HTTP 请求压缩为一个,这实际上可能有值(value),对吧?

基本上,我正在寻找一些 Django 最佳实践。将 javascript 文件视为模板是否合适?文档当然可以。人们在实践中做什么?

请您参考如下方法:

我建议在标准 <script src="..."> 中包含您的脚本源文件方式,而不是使用 Django 包含在脚本标签中。如果你有多个页面并且你设置了缓存头,浏览器会缓存你的脚本,所以这样做确实可以节省带宽。但最终我认为它是最有意义的,因为它可以从少量 JS 扩展到完整的单页应用程序,而且实际上没有任何缺点。

但是,我认为允许在模板中使用 Javascript 代码来根据 Django 应用程序中的值设置脚本参数。我会保持这种结构化和本地化。如果您使用主模板来包含您的样板文件,那是放置样板文件的好地方。像这样的东西:

<script> 
window.appParams = { 
   view1Url: {% url app.views.something %}, 
   ... 
} 
</script> 

没有逻辑,只有声明。