2009-06-12 7 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 и на их сервере.

Я что-то упустил? Кто-то имеет представление о том, что происходит?

Благодаря

ответ

3

Ваш скрипт обработчика (одна ссылка на app.yaml) имеет основной() функции, но нуждается в этих строфах в конце:

if __name__ == '__main__': 
    main() 

то, что происходит в том, что первый раз, когда ваш скрипт запускается в данном переводчику, он интерпретирует основной сценарий, который ничего не делает (тем самым возвращая пустой ответ). При последующих вызовах интерпретатор просто выполняет вашу основную() (документальную оптимизацию), которая генерирует страницу, как ожидалось. Добавление строфы выше приведет к тому, что она также выполнит main при первоначальном импорте.

0

Не удается воспроизвести - с каталога изменено на ./templates (не в моей установке с ../templates), и добавил обычная main функция, и этот скрипт назначается в app.yaml некоторого произвольного URL, он обслуживает «Hello World» каждый раз. Похоже, нам нужно больше информации, чтобы помочь - записи журнала (? Возможно добавить logging.info звонки здесь), app.yaml, а где main, и т.д., и т.д ...

Смежные вопросы