Jinjia2 模板引擎

形式最简单的Jinjia2模板引擎就是一个包含响应文本的文件。

1渲染模板

默认情况下,flask在应用中的templates子目录里面寻找模板。
flask提供的render_template()函数吧Jinjia2模板引擎集中到了应用中。这个函数的第一个参数是文件的关键字参数,随后的参数是键值对,表示模板中变量对应的具体值。

2变量

{{变量}}结构表示一个变量,这是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板中获取。
Jinjia2能识别所有类型的变量,甚至是一些复杂的类型,例如列表、字典和对象。
变量的值可以使用过滤器修改。
Jinjia2变量过滤器

过滤器名 说明
safe 渲染值时不转义
capitalize 把值的首字母换成大写,其他换成小写
lower 把值换成小写模式
upper 把值转换成大写模式
title 把值中每个单词的首字母都换成大写
trim 把值的首尾空格删掉
striptags 渲染之前把值中所有的html标签删掉

3控制结构

Jinjia2提供许多控制结构改变模板的渲染流程
例如:
{%if%}hello{{user}}{%endif%}
此外Jinjia2还支持宏类似于Python代码中的函数。为了重复使用宏,可以把宏保存到单独的文件中,然后在需要使用的模板中导入:
{%import ‘macros.html’ as macros%}

  • {%for comment in comments%} {{macros.render_comment(comment)}} {%endfor%}