在 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)}}}}