【问题标题】:Mako "Missing parentheses in %def"Mako“%def 中缺少括号”
【发布时间】:2011-02-14 02:47:48
【问题描述】:

在尝试向 Mako 模板添加缓存部分时,我收到了上述问题中列出的错误。在末尾添加() 可以消除错误,但我的页面上没有任何内容。任何帮助表示赞赏!

<%def name="test" cached="True" cache_timeout="60" cache_type="file">
    Test
/%def>

【问题讨论】:

    标签: python pylons mako


    【解决方案1】:

    在定义def 测试时,您不应该使用括号吗? 另外,如果“缓存”等是参数,那么我认为您的 您的定义应如下所示:

    <%def name="test(cached='True',cache_timeout='60',cache_type='file')"> 
        Test 
    /%def> 
    

    另见Mako documentation

    【讨论】:

    • 我当然看过 Mako 文档。这个例子几乎直接来自那里。 makotemplates.org/docs/caching.html我觉得你只是在猜测。
    • 我使用过 Mako,但不是在生成网页的上下文中,因此不知道缓存和与之相关的模式。我刚刚回答认为您缺少括号(在 def 定义中使用)并将它们放入可以解决问题。但我错了:(
    【解决方案2】:

    我的问题是我不知道&lt;%def&gt; 定义了一个函数。如果我使用括号并在定义后立即通过${test()} 调用该函数,它会按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2016-08-16
      • 2018-04-10
      • 1970-01-01
      • 2018-04-13
      相关资源
      最近更新 更多