Страница не всегда отображается - PullRequest
1 голос
/ 12 июня 2009

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

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 июня 2009

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

if __name__ == '__main__':
  main()

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

0 голосов
/ 12 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...