【问题标题】:Inline if statement escapes HTML characters内联 if 语句转义 HTML 字符
【发布时间】:2011-09-28 00:22:04
【问题描述】:

所以我在 Pyramid 上和 Mako 一起玩,我正在尝试做内联 if 语句。

<li>${'<a href="#">Opinions</a></li>' if whichnav == 'opinions' else 'Opinions'}

输出:

<li>&lt;a href=&#34;#&#34;&gt;Opinions&lt;/a&gt;&lt;/li&gt;

鉴于:

% if whichnav =='opinions':
      <li><a href="#">Opinions</a></li>
% else:
      <li>Opinions</li>
% endif

正确输出而不转义 HTML 字符:

<li><a href="#">Opinions</a></li> 

我想让我的代码尽可能的干净,以便更好地使用内联 if 语句,但我不明白为什么 HTML 字符会被转义,而使用 % 却不是。谢谢!

【问题讨论】:

    标签: python mako


    【解决方案1】:

    看起来您的 HTML 正在被转义。如果您将内联 if 更改为:

    ${'<a href="#">Opinions</a></li>' if whichnav == 'opinions' else 'Opinions' | n}
    

    (编辑:将| n 放在条件之后禁用过滤)。

    【讨论】:

    • 是的,这行得通。感谢您指出look!。
    • 酷!我也打算链接它,但后来我被拥有了。
    猜你喜欢
    • 2022-07-07
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2017-08-18
    • 2011-02-19
    相关资源
    最近更新 更多