Jinja2是基于python的多功能的被广泛使用的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity。 它支持unicode,并具有集成的沙箱执行环境。
Jinja2模板引擎弥补了Django自带模板系统许多不足。它具有以下特性:
沙箱执行模式
模板的每个部分都在引擎的监督之下执行,模板将会被明确地标记在白名单或黑名单内,这样对于那些不信任的模板也可以执行。
强大的自动HTML转换系统,可以阻止跨站脚本攻击模板继承机制
此机制使得所有的模板都具有相似一致的布局,也方便了开发人员对模板的修改和管理。
高质量的执行时间
Jinja2引擎在模板第一次加载时就把源码转换成Python字节码,加快模板执行时间。
可选的预先编译模式便于调试
调试系统融合了Python跟踪系统,使得模板编译和运行期间的错误能及时被发现和调试。
可配置的语法
可以重新配置Jinja2使得它更好地适应LaTeX或JavaScript的输出。
模板设计人员手册
此手册知道设计人员更好地使用Jinja2引擎的各种方法。