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