2009-06-12 6 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ファイルが見つかりました...)。私は最後に一気に呼び出そうとしましたが、それは助けになりませんでした。私はSDKとそのサーバーでこれを再現することができます。

何か不足していますか?誰かが何が起こっているのアイデアを持っていますか? 、(私のセットアップで../templatesを持っていない)./templatesに変更したディレクトリで、通常のmain機能が追加され、このスクリプトは、いくつかの任意のURLにapp.yamlに割り当てられた -

おかげ

答えて

3

あなたのハンドラスクリプト(app.yamlをによって参照される1つ)がメインを持っている...、(多分ここlogging.info呼び出しを追加?)mainapp.yaml、などなどをログエントリを - 我々は助けるために多くの情報が必要ゲス()関数ではなく、最後に、このスタンザを必要とします:

if __name__ == '__main__': 
    main() 

を何が起こっていることはあなたのスクリプトが与えられたインタプリタで実行されて初めて、それが(したがって、空白の応答を返す何もしない、あなたのメインのスクリプトを、解釈していることです)。その後の呼び出しでは、インタープリタはmain()(文書化された最適化)を実行するだけで、期待どおりのページが生成されます。上記のスタンザを追加すると、初期インポート時にもメインが実行されます。

0

は再現できません毎回正常に「Hello World」を提供します。

関連する問題