【发布时间】:2015-06-17 21:55:56
【问题描述】:
我需要以编程方式区分 Jinja 模板文件、其他模板文件(例如 ERB)和无模板纯文本文件。
Jinja 模板不需要有特定的扩展名:.html、.xml 或任何其他扩展名都可以。
但是当需要显式扩展时我应该使用什么? .py 具有误导性,包括“jinja”和“extension”在内的任何搜索都会被围绕 Jinja Extensions 的讨论严重洗掉。
我可以轻松地制定一个项目范围的约定(想到.jnj 或.ja),但这是针对开源的,所以如果某处已经建立了实践,我不想逆潮流而动。
编辑 1: 同样,我知道 Jinja 项目 - 故意 - 没有定义默认文件扩展名。我想问是否有任何非官方约定出现在出于某些特定项目原因需要的情况下。
编辑 2: 澄清:这不适用于 HTML 内容。
【问题讨论】:
-
对于在 HTML 上下文中搜索时发现此问题的其他人的旁注:需要注意的一件事是文件扩展名对 HTML 自动转义有影响。如果您正在加载宏以在 HTML 模板中使用,
{% import "whatever.html" as foo %}将毫无意外地发挥作用,而{% import "whatever.jinja" as foo %}将导致自动转义,如>变为>。我怀疑这是为什么很多 Django 和 Flask 用户最终使用.html的部分原因。 -
@mirth23 你能详细说明一下吗?我工作得很好。 HTML 表单宏作为工作 HTML 添加到模板中,尽管我使用
.html.j2作为它们的扩展。
标签: python templates file-extension jinja2