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 に 2 つの終了ブラケットをレンダリングしますが、何もレンダリングすべきではないと思います。

HTML

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

2 に答える 2

9

web2py では、コードを <% %> ではなく {{ }} で囲みます。Python コードにコメントするのと同じようにコメントできます。あなたがする単一行コードの場合

{{#.....}}

マルチライン用

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

また

{{"""......"""}}
于 2010-05-21T04:39:02.863 に答える
1

Massimo が提案したように実行できます。または、一時的な変更のために結果の HTML をコメントアウトすることがよくあります。

于 2010-06-01T07:30:07.910 に答える