2009-06-12 80 views
1

在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和他們的服務器上重新制作這個。

我錯過了什麼嗎?有人知道發生了什麼嗎?

感謝

回答

3

你的處理程序腳本(一個由app.yaml的引用)的主()函數,但需要本節末:

if __name__ == '__main__': 
    main() 

發生了什麼事是你的腳本是在一個給定的解釋第一次運行時,它解釋你的主要腳本,它什麼也不做(並返回一個空響應)。在隨後的調用中,解釋器只是執行你的main()(一個文檔化的優化),它會按照預期生成頁面。上面的節添加將導致它在初始導入時也執行main。

0

無法重現 - 用改變./templates(沒有在我的設置一個../templates)目錄,和通常main功能添加,並分配在app.yaml這個腳本一些任意網址,它每次都成功地「Hello World」。我想我們需要更多的信息來幫助 - 日誌項(?也許這裏補充logging.info電話),app.yaml,哪來main,等等等等......