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%}