我正在尝试阅读&在GAE中打印谷歌URL的结果。当我运行第一个程序时,输出是空白的。然后我在打印url结果之前添加了一个print语句并运行它。现在我得到了结果。
为什么程序1不提供任何输出?
计划1
import urllib
class MainHandler(webapp.RequestHandler):
def get(self):
url = urllib.urlopen("http://www.google.com/ig/calculator?hl=en&q=100EUR%3D%3FAUD")
result = url.read()
print result
计划2
import urllib
class MainHandler(webapp.RequestHandler):
def get(self):
# Print something before print urllib result
print "Result -"
url = urllib.urlopen("http://www.google.com/ig/calculator?hl=en&q=100EUR%3D%3FAUD")
result = url.read()
print result
答案 0 :(得分:4)
您正在使用WSGI应用程序中的print
。永远不要在WSGI应用程序中使用print
。
正在发生的事情是您的文本正在Web服务器期望看到标题的位置输出,因此您的输出不会按预期显示。
相反,您应该使用self.response.out.write()
向用户发送输出,并使用logging.info
等来调试数据。
答案 1 :(得分:0)
之前我遇到过这个问题。但是找不到关于它的确切答案。
也许cache mechanism
引起了这个问题,不确定
您需要执行flush output
来打印数据:
import sys
sys.stdout.flush()
或者就像你做的那样:
print "*" * 10
print data
我认为你在调试时会喜欢logging
:
logging.debug('A debug message here')
或
logging.info('The result is: %s', yourResultData)