web2py комментарии на стороне сервера - PullRequest
4 голосов
/ 21 мая 2010

В представлении web2py, как закомментировать код на стороне сервера? В ASP.NET я могу заключать любые теги HTML или кода в <% - и -%>, и этот блок не будет компилироваться или отправляться клиенту. Скорость делает то же самое с # * и * #. Есть ли эквивалент в 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)}}'''}}

Error

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

Ответы [ 2 ]

9 голосов
/ 21 мая 2010

В web2py вы заключаете код в {{}}, а не в <%%>. Вы можете комментировать, как если бы вы комментировали код Python. Для однострочного кода вы делаете

{{#.....}}

для мультилинии

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

или

{{"""......"""}}
1 голос
/ 01 июня 2010

вы можете сделать так, как предложил Массимо, или часто я просто закомментирую полученный HTML-код для временных изменений:

...