其实这里的“空白”翻译成“空白字符”会更容易理解一些。jinja模板会把源码中空白字符原封不动地返回,所以像下面这样的代码 {% for item in seq %} {{ item }} {% endfor %} 其实可以看成"{% for item in seq %}\n\t{{ item }}\n{% endfor %}"。注意到了吗,这里面语句中间是有"\n\t"和"\n"的,jinja会把这两个空白字符也进行返回,这就会让item的上下两行成为空行,像下面这样: item1 item2 item3 ... 所以我们要加上一个"-"号来去掉这些空白字符。 {% for item in seq -%} {{ item }} {%- endfor %} 这样写之后,这块代码就成了"{% for item in seq -%}\n\t{{ item }}\n\t{%- endfor %}"。jinja在识别到"-%"或"%-"时,就会分别去掉接在后面或前面的空白字符,输出就成了: item1item2item3..... 顺便附上jinja的英文文档地址:http://jinja.pocoo.org/docs/dev/templates/#whitespace-control看中文文档不明白的时候找英文文档看看是个好的选择。
其实这里的“空白”翻译成“空白字符”会更容易理解一些。
jinja模板会把源码中空白字符原封不动地返回,所以像下面这样的代码
其实可以看成"{% for item in seq %}\n\t{{ item }}\n{% endfor %}"。注意到了吗,这里面语句中间是有"\n\t"和"\n"的,jinja会把这两个空白字符也进行返回,这就会让item的上下两行成为空行,像下面这样:
所以我们要加上一个"-"号来去掉这些空白字符。
这样写之后,这块代码就成了"{% for item in seq -%}\n\t{{ item }}\n\t{%- endfor %}"。jinja在识别到"-%"或"%-"时,就会分别去掉接在后面或前面的空白字符,输出就成了:
顺便附上jinja的英文文档地址:http://jinja.pocoo.org/docs/dev/templates/#whitespace-control
看中文文档不明白的时候找英文文档看看是个好的选择。