内联if语句转义HTML字符

时间:2011-09-28 00:22:04

标签: python mako

所以我在金字塔上玩Mako,我正在尝试使用内联语句。

<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字符被转义,而使用%则不是。谢谢!

1 个答案:

答案 0 :(得分:2)

看起来您的HTML正在转义。如果您将内联if更改为此内容会发生什么:

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

(编辑:放置| n以禁用条件后的过滤。