title: Jinja2 category: page slug: jinja2 sortorder: 0417 toc: False sidebartitle: Jinja2 meta: Jinja2 是一个用 Python 编写的模板引擎,它用于输出 HTML 和 XML 等的格式文件。 updated: 2016-07-06 11:30 authors: haiiiiiyun.github.io

Jinja2

Jinja2 是一个 Python 模板引擎,用于创建 HTML、XML 等其它标记格式文件,这些文件能通过 HTTP 响应返回给用户。

为什么说 Jinja2 很有用?

Jinja2 有用的原因是:它具有一致的模板标签语法,并且该项目完全是作为 一个独立的开源项目 存在的,因此它能用于其它的代码库中。

Jinja2 是对 模板引擎 概念的一种实现。 到 Web 开发 那一章去学习更多相关知识,或者到 总目录 页去查看其它所有主题。

对于一个模板引擎的代码功能来说,一个极端是允许将任意的代码嵌入到模板中,另一个极端是允许一个开发者在模板中编写任何她想要的功能。Jinja2 的实现经过了大量的考虑 ,并在这两者之前取得了一个很好的平衡。

Jinja2 的起源和发展

Jinja2 的第一个有记录的公开发行版是 2008 的 2.0rc1。自那之后,该引擎进行了大量的更新,且一直处于活跃开发状态。

Jinja2 引擎当然不是最好的模板引擎。实际上,Jinja2 语法是受到 Django 内置模板引擎启发的, Django 的相关引擎在好几年前就已发布了。之前就已经有很多的模板系统了,例如 JavaServer 页面 (JSPs),它就比 Jinja2 将近早了十年。Jinja2 的创建吸收了其它模板引擎的经验,而今它在 Python 社区中有着广泛应用。

哪些项目使用了 Jinja2?

Jinja2 是一个在 Web 框架 中经常使用的模板引擎,像 FlaskBottleMorepath 以及随着 1.8 版的更新,现在的 Django 也可选用该引擎了。 Jinja2 也被 配置管理 工具 Ansible 、静态网站生成器 Pelican 等其它许多类似工具用作模板语言。

其目标是:当开发人员已经通过某个项目学会了 Jinja2,那么在另一个需要模板功能的项目中就可以使用完全相同的语法和样式。复用降低了学习曲线并使得开源项目作者免于重造一种新的模板样式。

Jinja2 相关资源