1、三种语法:
控制结构:{% %}
变量取值:{{ }}
注释:{# #}
2、变量:
Jinja2识别所有的Python数据类型,包括列表、字典、对象等。
A value from a dictionary: {{ mydict['key'] }} A value from a list: {{ mylist[3] }} A value from a list, with a variable index: {{ mylist[myintvar] }} A value from an object's method: {{ myobj.method() }}
3、Jinja2中的过滤器:
过滤器名 | 说明 |
safe | 渲染值时不转义 |
capitalize | 把值的首字母转换成大写,其他字母转换成小写 |
lower | 把值转换成小写 |
upper | 把值转换成大写 |
title | 把值中每个单词的首字母转换成大写 |
trim | 把值的首尾空格去掉 |
striptags | 渲染之前把值中所有的HTML标签删掉 |
join | 拼接多个值为字符串 |
replace | 替换字符串的值 |
round | 默认对数字进行四舍五入 |
int | 把值转换为整型 |
变量可以通过“过滤器”修改,过滤器与变量用管道(|)分隔。多个过滤器可以链式调用,前一个过滤器的输出会作为后一个过滤器的输入。
{{ "Hello World" | replace("Hello", "Goodbye") }} -> Goodbye World {{ "Hello World" | replace("Hello", "Goodbye") | upper }} -> GOODBYE WORLD {{ 43.5 | round }} -> 44.0 {{ 43.5 | round | int }} -> 44
4、Jinja2的if条件:
{% if user %} Hello, {{ user }} {% else %} Hello, Stranger {% endif %}
5、Jinja2的for循环:
{% for comment in comments %} {{ comment }} {% endfor %}
6、Jinja2中的宏。类似于Python代码中的函数:
{% macro render_comment(comment) %} {{ comment }} {% endmacro %} {% for comment in comments %} render_comment(comment) {% endfor %}
7、区分模版文件:
通过 - template: jinja 指令声明一个sls文件是一个jinja模版文件。
转载于:https://blog.51cto.com/13568014/2307539