如何在mako模板中设置变量?

问题描述 投票:0回答:2

我希望能够创建一个仅存在于 mako 模板 html 中的变量“hasBannana”,用于检查某些内容。假设杂货店和商店是从生成模板的函数传入的。

%for customer in store:

hasBannana = false // Invalid syntax
%for item in grocery:

%if item == 'Bannana':
  hasBannana = true  // Invalid syntax
%endif

%if hasBannana: // Invalid syntax
  <span>Bought a Bannana</span>
%endif
%end for

如何更正此语法?这可能是我想做的吗?

python mako
2个回答
11
投票

你的结尾

%endfor
标签有问题,应该有两个。

if标签之间的代码将被输出,

<% blah %>
然后代码将被执行。

% for item in ('apple', 'banana'):
    <%
        isBanana = False
    %>
    % if item == 'banana':
    <%
        isBanana = True
    %>
    %endif
    % if isBanana:
        <span> Bought a banana</span>
    %endif
%endfor

0
投票

我会用更少的打开/关闭标签重写它:

% for item in ('apple', 'banana'):
    <%
        isBanana = False
        if item == 'banana':
            isBanana = True
    %>

    % if isBanana:
        <span> Bought a banana</span>
    % endif
% endfor

% for item in ('apple', 'banana'):
    % if item == 'banana':
        <span> Bought a banana</span>
    % endif
% endfor

它更具可读性...

© www.soinside.com 2019 - 2024. All rights reserved.