为什么不通过HTML注释删除Jinja代码?

时间:2014-11-16 23:00:01

标签: python html jinja2

我只是浪费了一个小时试图调试破坏的东西,结果是我试图删除的第一件事造成的:

<!-- <foo>Some HTML with {% if bar.thisWillThrow() %}{{ "Jinja" }}{% endif %} </foo> -->

事实证明,通过这种HTML风格的评论,仍然会调用bar.thisWillThrow,这(因为它是我的问题的原因)仍然引发了异常,让我相信这不是问题线。

我知道Jinja的{# comments #},但我很好奇为什么这不起作用。

我能想到的唯一优势就是这允许<!-- {{ foobar.comments }} -->,但我无法想象为什么有人想要将他们的评论与他们的代码分开,这听起来像是一场彻头彻尾的噩梦!我也无法想象设计师会想鼓励记录评论。

这种行为有什么用呢?

2 个答案:

答案 0 :(得分:1)

Jinja没有太多关于HTML的知识来解析HTML评论。如果您将Jinja视为任意文本格式(不仅仅是HTML)的模板引擎,那么这种行为就非常有意义。

答案 1 :(得分:0)

因为那是Jinja的模板引擎功能。如果您查看template engine的工作原理,它会说:

  

模板处理器(也称为模板引擎模板   解析器)是一个软件或软件组件   旨在将一个或多个模板与数据模型相结合来生成   一个或多个结果文件。

它将您提供的任何python数据转换为可读数据。