我是编程新手(还是一名学生)。我正在自学 Python,尝试在网络服务器上运行一个程序,并决定使用 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
页面上实际上只显示最后的“返回”。我知道使用 web2py 时有一些不同的语法,但我发现的示例代码似乎都显示了 return、response.flash、response.print、使用 print str(DIV()) 和我发现的其他一些代码,但一无所获和。另外,当我“返回索引”返回“无”时——我认为它会返回稍后应该由 for 循环打印的值。
“index()”函数获取 url 列表,但支持函数相当长,但没有返回任何错误。
最佳答案
如果您希望某些内容出现在浏览器中,请不要使用 print (即输出到 Python shell)。如果您希望浏览器显示某些内容,您的函数必须返回
它(您也可以引发 HTTP
exception ,这最终是框架在您的函数返回响应时执行的操作)。
如果您还没有这样做,我强烈建议您阅读 the book 的前几章。更好地了解框架(以及一般的 Web 框架)的工作原理。特别是看here和 here .
关于Python web2py 打印到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13964352/