jinja2模板中有个空白控制是什么意思?
没看懂{% block %}{% endblock %} 跟{%- block -%}{%- endblock -%}之间的区别
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
没看懂{% block %}{% endblock %} 跟{%- block -%}{%- endblock -%}之间的区别
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
其实这里的“空白”翻译成“空白字符”会更容易理解一些。
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
看中文文档不明白的时候找英文文档看看是个好的选择。