4

在 web2py 视图中,如何注释掉服务器端代码?在 ASP.NET 中,我可以用 <%-- 和 --%> 包围任何 HTML 或代码标记,并且该块不会被编译或发送到客户端。Velocity 对 #* 和 *# 做同样的事情。web2py中是否有等价物?

ASP.NET

<div>
    <p><%=foo.bar%></p>
    <%-- don't print twice! <p><%=foo.bar%></p> --%>
</div>

web2py

<div>
    <p>{{=foo.bar}}</p>
    ??? don't print twice! <p>{{=foo.bar}}</p> ???
</div>

编辑:修复了 web2py 代码标签。


块注释问题

如果 {{'''...'''}} 和 {{"""..."""}} 与内部的代码块一起使用,则会引发异常。使代码大部分保持不变的非理想解决方法是从注释掉的代码块中删除双括号。

HTML

{{'''{{somefunction(42)}}'''}}

错误

Traceback (most recent call last):
  File "gluon/restricted.py", line 176, in restricted
  File "gluon/restricted.py", line 163, in compile2
  File "C:\development\web2py\applications\SpaceCorps/views\default/index.html", line 74
    '''{{somefunction(42)\nresponse.write("'''}}\r\n\t\t\r\n\t</div>\r\n</div>\n\t</body>\n</html>\n",escape=False)
                                          ^
SyntaxError: invalid syntax

生成的查看代码

'''{{somefunction(42)\nresponse.write("'''}}\r\n\t\t\r\n\t</div>\r\n</div>\n\t</body>\n</html>\n",escape=False)

单行注释的问题

{{#}} 成功评论,但也没有按预期工作。但是,这可能更难以修复,并且应该很容易解决。下面的 HTML 将在最终的 HTML 中呈现两个结束括号,而我认为它不应该呈现任何内容。

HTML

{{#{{somefunction(42)}}}}
4

2 回答 2

9

在 web2py 中,您将代码包含在 {{ }} 而不是 <% %> 中。您可以像评论 Python 代码一样评论。对于单行代码,您可以

{{#.....}}

用于多线

{{'''......'''}}

或者

{{"""......"""}}
于 2010-05-21T04:39:02.863 回答
1

您可以按照 Massimo 的建议进行操作,或者我通常只是将生成的 HTML 注释掉以进行临时更改:

于 2010-06-01T07:30:07.910 回答