在Google App Engine中,我有以下代码,显示一个简单的HTML页面。
import os
from google.appengine.ext.webapp import template
from google.appengine.ext import webapp
class IndexHandler(webapp.RequestHandler):
def get(self):
template_values = { }
path = os.path.join(os.path.dirname(__file__), '../templates/index.html')
self.response.out.write(template.render(path, template_values))
问题是页面并不总是呈现。 index.html是一个简单的“Hello World!”。几页刷新后,页面显示正确(即找到index.html文件...)。我试图在最后调用flush,但它没有帮助。我可以使用SDK和他们的服务器重新调用它。
我错过了什么吗?有人知道发生了什么吗?
由于
答案 0 :(得分:3)
您的处理程序脚本(app.yaml引用的脚本)具有main()函数,但最后需要此节:
if __name__ == '__main__':
main()
正在发生的事情是,您的脚本第一次在给定的解释器中运行时,它会解释您的主脚本,它不执行任何操作(因此返回空白响应)。在后续调用中,解释器只执行main()(记录的优化),按预期生成页面。添加上面的节将导致它在初始导入时执行main。
答案 1 :(得分:0)
无法重现 - 目录已更改为./templates
(我的设置中没有../templates
),并且添加了通常的main
功能,并且此脚本已分配到app.yaml
到某个任意网址,每次都成功地提供“Hello World”。猜猜我们需要更多信息来帮助 - 记录条目(可能在这里添加logging.info
个电话?),app.yaml
,main
等等......