Jinja 模板引擎介绍文档
介绍
Jinja 是一款快速、高效且可扩展的模板引擎。模板中的特殊占位符支持编写类 Python 语法的代码,传入数据后即可渲染生成最终文档。
其核心功能包括:
- 模板继承与包含机制
- 支持在模板内定义和导入宏
- HTML 模板可启用自动转义,防止不可信用户输入引发的跨站脚本(XSS)攻击
- 沙箱环境可安全渲染不可信模板
- 异步支持,生成模板时能自动处理同步和异步函数,无需额外语法
- 借助 Babel 实现国际化(I18N)支持
- 模板可即时编译为优化的 Python 代码并缓存,也可提前编译
- 异常会指向模板中的正确行,便于调试
- 可扩展过滤器、测试器、函数乃至语法
Jinja 的设计理念是:尽可能将应用逻辑置于 Python 代码中,但不应过度限制功能而增加模板设计者的工作难度。
安装
建议使用最新版本的 Python。Jinja 支持 Python 3.7 及以上版本。同时建议使用虚拟环境,以隔离项目依赖与其他项目及系统环境。
通过 pip 安装最新版 Jinja:
$ pip install Jinja2
依赖项
安装 Jinja 时,以下依赖会自动安装:
- MarkupSafe:渲染模板时对不可信输入进行转义,避免注入攻击。
可选依赖项
以下组件不会自动安装:
- Babel:为模板提供翻译支持。
