我是编程新手(还是个学生)。我自学了Python,尝试在was服务器上运行一个程序,并决定使用web2py,因为它适合像我这样的初学者。该程序在命令提示符下运行良好,但不能在其制作的网页上正确执行打印语句。我一直在阅读web2py文档和教程,试图找到如何在不返回和关闭函数的情况下打印一些东西。当我运行以下命令时:
def main():
url = "http://<someurl>"
if url[len(url) - 1] == '/':
url = url[:len(url) - 1]
maxdepth = 3
maxpages = 10
index_cnt = 4
index = crawl_web(url,maxpages,maxdepth)
print "Printing index..."
for i,e in enumerate(index):
if i >= index_cnt:
return
print "'{}' appears in the following urls:".format(e[0])
for i,u in enumerate(e[1]):
print " {}".format(u)
return " {}".format(u) ##only this line printed in web2py page
只有末尾的“return”才会显示在页面上。我知道在使用web2py时有一些不同的语法,但我找到的示例代码似乎都显示了一个返回值,response.flash、response.print、使用print str(DIV())和我找到的其他一些方法,但我什么也没用到。另外,当我'return index‘返回'None’时--我认为它会返回随后应该由for循环打印的值。
'index()‘函数获取一个url列表,但是支持的函数相当长,但没有返回任何错误。
发布于 2012-12-20 11:08:06
如果希望在浏览器中显示某些内容,请不要使用打印(即输出到Python shell)。如果您希望浏览器显示某些内容,您的函数必须对其执行return
操作(您也可以引发一个HTTP
exception,当您的函数返回响应时,框架最终会执行此操作)。
如果你还没有这样做,我强烈建议你通读the book的前几章,以更好地理解框架(以及一般的web框架)是如何工作的。特别是,看看here和here。
发布于 2013-01-03 21:38:02
不要直接在控制器中使用打印。您可以作为dict
或str
返回到必须使用模板语法才能打印的视图。
https://stackoverflow.com/questions/13964352
复制相似问题