Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么Jinja代码没有被HTML注释删除?_Python_Html_Jinja2 - Fatal编程技术网

Python 为什么Jinja代码没有被HTML注释删除?

Python 为什么Jinja代码没有被HTML注释删除?,python,html,jinja2,Python,Html,Jinja2,我只是浪费了一个小时试着调试一些坏掉的东西,结果它是由我试图移除的第一件东西引起的: <!-- <foo>Some HTML with {% if bar.thisWillThrow() %}{{ "Jinja" }}{% endif %} </foo> --> 事实证明,在这个HTML风格的注释中,bar.thisWillThrow仍然被调用,它(因为这是我出现问题的原因)仍然抛出了一个异常,这让我相信这不是问题所在 我知道Jinja的{#评论#},但

我只是浪费了一个小时试着调试一些坏掉的东西,结果它是由我试图移除的第一件东西引起的:

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

事实证明,在这个HTML风格的注释中,
bar.thisWillThrow
仍然被调用,它(因为这是我出现问题的原因)仍然抛出了一个异常,这让我相信这不是问题所在

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

我能想到的唯一优点是,这允许
,但我无法想象为什么有人想将他们的注释与他们的代码分开,这听起来像一场噩梦!我也无法想象设计师会鼓励登录评论


这种行为有什么好处?

因为这是Jinja作为模板引擎的功能。如果你查看a是如何工作的,它会说:

模板处理器(也称为模板引擎模板 解析器(parser)是一个软件或软件组件,它是 设计用于将一个或多个模板与数据模型组合以生成 一个或多个结果文档


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

Jinja没有太多关于HTML的知识来解析HTML注释。如果您将Jinja视为任意文本格式(不仅仅是HTML)的模板引擎,则此行为完全有意义。

是的,可作为HTML注释中的字符串读取,然后由忽略HTML注释的浏览器进行解释和呈现。@OllieFord这并不意味着HTML内容会完全抑制代码,只要看一下源代码,你就会看到带有相应注释的HTML。哦,我现在看到了,我不明白我以前怎么会错过它!显然,在创建HTML文档的过程中会调用它,然后在浏览器点击注释时忽略任何结果。哦。