Python 有没有办法清理jinja2生成的html?

Python 有没有办法清理jinja2生成的html?,python,jinja2,Python,Jinja2,我们使用jinja2来创建html,但是,由于我们在jinja中进行了许多循环和其他事情来生成html,html“看起来”很难看……(注意:这只是为了美观)。我们可以做些什么来清理html吗?(除了清理我们的jinja2代码,这会使我们的模板对我们的员工来说有些不可读之外) 像“靓汤”这样的东西很漂亮吗 (是的,我意识到这个问题是一个相当吹毛求疵的问题……我体内的强迫症患者说要把它清理干净) 例如: <table>

我们使用jinja2来创建html,但是,由于我们在jinja中进行了许多循环和其他事情来生成html,html“看起来”很难看……(注意:这只是为了美观)。我们可以做些什么来清理html吗?(除了清理我们的jinja2代码,这会使我们的模板对我们的员工来说有些不可读之外)

像“靓汤”这样的东西很漂亮吗

(是的,我意识到这个问题是一个相当吹毛求疵的问题……我体内的强迫症患者说要把它清理干净)

例如:

                              <table>

      <tbody>


                  <tr>
                    <td>

                     a column

                    </td>




                                <td>

                                    a value

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

纵队
价值

很难看,嗯

看起来好像有人创建了一个库来做需要做的事情。查看我发现的附加到的对象(您应该向其投票)。

在标记中添加“-”:

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

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

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

进一步解释了空白控制。

无论如何,这为什么不是默认行为?请注意,在for循环中,这可能会连接您不希望连接的内容。虽然这看起来应该可以工作,但实际上不会。我已经做过实验,可以设置和更改这些配置变量,但是当模板呈现时,它们似乎被忽略了。顺便说一句,我在
之前的应用程序请求中这样做了
例如,使用当前的
应用程序.jinja\u env.trim\u blocks=True