继承我的问题:
我定义了一个名为“lorem”的函数,它应该打印出一些文本:
<div id="mainpage">
<%
def lorem():
for i in range(0,50):
print("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam")
%>
${lorem()}
</div>
但它只是在我的控制台上打印此文本,但我想在我的网站上打印。 我使用带有python 3.3的cherrypy和Mako。
答案 0 :(得分:3)
您应该使用def
mako tag,这会让生活更轻松。
<%def name="lorem()">
% for i in range(0,50):
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
% endfor
</%def>
<div id="mainpage">
${lorem()}
</div>
编辑:如果你想使用像你一样的标准python函数,你只需要确保它返回一些内容(print将输出发送到stdout,而不是你的mako模板)。
<div id="mainpage">
<%
def lorem():
res = []
for i in range(0,50):
res.append("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam")
return ' '.join(res)
%>
${lorem()}
</div>
或使用列表理解
return ' '.join([
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"
for i in range(0,50)
]
答案 1 :(得分:1)
<%
context.write("Hai")
%>
答案 2 :(得分:0)
看起来您只需输入所需的文字而不使用打印命令...
<div id="mainpage">
<%
def lorem():
for i in range(0,50):
return "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"
%>
${lorem()}
</div>
http://docs.makotemplates.org/en/latest/defs.html#using-defs
希望这有帮助!
答案 3 :(得分:0)
您可以打印到context
对象:
<%
def lorem():
for i in range(0,50):
print("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam", file=context)
%>
${lorem()}