【问题标题】:Remove unnecessary whitespace from Jinja rendered template从 Jinja 呈现的模板中删除不必要的空格
【发布时间】:2016-06-16 22:59:24
【问题描述】:

我正在使用curl 来查看我的网络应用程序的输出。当 Flask 和 Jinja 渲染模板时,输出中有很多不必要的空白。它似乎是通过渲染来自 Flask-WTF 和 Flask-Bootstrap 的各种组件来添加的。我可以使用sed 剥离它,但是有没有办法从 Jinja 控制它?

【问题讨论】:

    标签: python flask jinja2


    【解决方案1】:

    Jinja 有多种方式来control whitespace。它没有有办法美化输出,你必须手动确保一切看起来“不错”。

    最广泛的解决方案是在环境中设置trim_blockslstrip_blocks

    app.jinja_env.trim_blocks = True
    app.jinja_env.lstrip_blocks = True
    

    如果要在文件末尾保留换行符,请设置strip_trailing_newlines = False

    您可以使用控制字符来修改标签周围空格的工作方式。 - 总是删除空格,+ 总是保留它,覆盖该标签的环境设置。 - 字符可以放在标记的开头或结尾(或两者)以控制该方向的空白,+ 字符仅在标记开头才有意义。

    • {%- if ... %} 脱之前
    • {%- if ... -%}前后条带
    • {%+ if ... %} 保留之前
    • {%+ if ... -%} 前保留后剥离
    • 记住{% endif %}是分开处理的

    控制字符只适用于编写的模板。如果您包含模板或使用来自第 3 方的宏,但他们编写的模板将适用于该部分。

    【讨论】:

      【解决方案2】:

      折叠块前后的空白:

      {%- if form.message -%} //trims before
         {{ form.message }}
      {%- endif -%} // trims after
      

      【讨论】:

        猜你喜欢
        • 2012-05-18
        • 2020-04-21
        • 2014-03-28
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 2021-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多