python - {% include ... %} 标签和 Django 模板中的 {% ssi ... parsed %} 标签有什么区别?

标签 python django django-templates

除了出于“安全原因”必须给 ssi 一个绝对路径之外,它们似乎基本相同。除了关键字参数(自 1.3 版以来新增)外,两者似乎具有完全相同的功能。它们真的是多余的吗?

最佳答案

没有 {% ssi %}parsed 参数,包含的文件将不会被视为 Django 模板,它只会作为普通文本包含在内。这意味着如果包含的文件有模板标签/过滤器,它们将不会被解释。

当您确实包含parsed 参数时,差异会变得更像您所说的那样。

  • {% ssi %} 增加了安全限制,因为您可以在文件系统中包含任何文件。
  • 您必须使用绝对 URI 而不是适合模板加载器的相对路径。
  • 在 Django 1.5 之前,第一个参数(路径)必须不带引号。这意味着您不能将模板变量用作第一个参数。

the documentation 中有关于最后一点的更多详细信息.

关于python - {% include ... %} 标签和 Django 模板中的 {% ssi ... parsed %} 标签有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324575/

相关文章:

python - 如何在 Django 模板中使用带有外键对象的 get_absolute_url()

jQuery 主题模仿 Django 管理界面风格(使用 CSS)

django - 显示特定用户 django 的模型值

python - 将 float 转换为 int 并保留空值

python - 如何确保 tensorflow 正在使用 GPU

python - 在 Jupyter Notebook 中使用 matplotlib 绘制动态变化的图形

python - 用规则统一字典列表的最快方法?

django - 如果某些模块在另一个应用程序中有依赖关系,如何制作可重用的 Django 应用程序?

python - 为什么在 MacOS 中启动 Django 服务器时出现错误?

python - Django 渲染字典性能