web2py服务器端评论

Mik*_*att 4 comments web2py view

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

ASP.NET

<div>
    <p><%=foo.bar%></p>
    <%-- don't print twice! <p><%=foo.bar%></p> --%>
</div>
Run Code Online (Sandbox Code Playgroud)

的web2py

<div>
    <p>{{=foo.bar}}</p>
    ??? don't print twice! <p>{{=foo.bar}}</p> ???
</div>
Run Code Online (Sandbox Code Playgroud)

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


块注释有问题

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

HTML

{{'''{{somefunction(42)}}'''}}
Run Code Online (Sandbox Code Playgroud)

错误

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
Run Code Online (Sandbox Code Playgroud)

生成的视图代码

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

单行注释问题

{{#}}成功发表评论,但也没有按预期完成工作.然而,这可能更难以修复,并且应该易于解决.以下HTML将为最终HTML呈现两个结束括号,而我认为它不会呈现任何内容.

HTML

{{#{{somefunction(42)}}}}
Run Code Online (Sandbox Code Playgroud)

mdi*_*rro 9

在web2py中,您将代码括在{{}}而非<%%>中.您可以像评论Python代码一样发表评论.对于单行代码,您可以

{{#.....}}
Run Code Online (Sandbox Code Playgroud)

对于多线

{{'''......'''}}
Run Code Online (Sandbox Code Playgroud)

要么

{{"""......"""}}
Run Code Online (Sandbox Code Playgroud)