【问题标题】:Is there a way to clean up the html that jinja2 produces?有没有办法清理 jinja2 生成的 html?
【发布时间】:2013-06-06 00:33:52
【问题描述】:

我们正在使用 jinja2 创建我们的 html,但是由于我们在 jinja 中执行许多循环和其他操作来生成 html,因此 html“看起来”很丑......(注意:这只是为了美观)。我们可以做些什么来清理 html 吗? (除了清理我们的 jinja2 代码很明显,这会使我们的模板对我们的员工有些不可读)

诸如美汤美化之类的东西?

(是的,我意识到这个问题是一个非常挑剔的问题......我的 ocd 说要清理它)。

例如:

                              <table>

      <tbody>


                  <tr>
                    <td>

                     a column

                    </td>




                                <td>

                                    a value

                                </td>
                      </tr>
                     </tbody>
           </table>     

很丑,嗯?

【问题讨论】:

    标签: python jinja2


    【解决方案1】:

    看起来有人创建了一个库来满足需要。请参阅this library,我发现它附在this question(你应该支持它)。

    【讨论】:

      【解决方案2】:

      您还可以通过将 trim_blockslstrip_blocks 设置为 True 来配置 Jinja 以将标签替换为空行(而不是空行)。例如,在 Flask 应用程序中,您可能会这样写:

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

      documentation 进一步解释了空白控制。

      【讨论】:

      • 虽然这看起来应该可以工作,但它没有。我已经尝试过并且可以设置和更改这些配置变量,但是在模板呈现时它们似乎被忽略了。顺便说一句,我是在 before_app_request 代码中完成的,因此使用了 current_app.jinja_env.trim_blocks = True 示例。
      【解决方案3】:

      在标签中添加“-”:

      {%- if 'this'=='this' -%}
          {{ blah }}
      {%- endif -%}
      

      【讨论】:

      • 为什么这不是默认行为?
      • 小心,在 for 循环中,这可以连接你不想连接的东西。
      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 2020-03-15
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多