Google App Engine: пустая страница после запроса POST

Когда я нажимаю кнопку «Добавить» в своем веб-приложении, появляется этот адрес:

локальный: 8080/добавить

но с чистой страницей.

main.py:

class Add(webapp2.RequestHandler):
    def post(self):
        print("Test")
        ...
        return self.redirect("/admin_page")

app = webapp2.WSGIApplication([...
                                ('/add', Add),
                                ('/', MainPage)], debug=True)

В Log Console не доходит до строки print("Test"). Журнал показывает:

INFO     2013-09-07 13:14:42,423 server.py:528] "POST /add HTTP/1.1" 200 - 

И застрял там, он не продолжает работать.

В чем может быть проблема и как ее решить?


Изменить:

Переменная result получает правильное значение, но функция не выполняет перенаправление:

class Add(webapp2.RequestHandler):
    def post(self):
        ...
        logging.debug("result in main.py = %s", result)
        if result is 0:
            return self.redirect("/admin_page")


app = webapp2.WSGIApplication([...
                               ('/add', Add),
                               ('/', MainPage)], debug=True)

Вывод консоли журнала:

DEBUG    2013-09-07 12:36:07,167 main.py:362] result in main.py = 0

И он показывает пустую страницу по адресу:

локальный: 8080/добавить


person user2653179    schedule 07.09.2013    source источник


Ответы (2)


Вместо использования post вы должны написать в ответ:

self.response.write("Test")

Кроме того; вам вообще не следует использовать print, так как appengine использует его для внутренней связи.

person siebz0r    schedule 07.09.2013
comment
Я отладил программу. Все работает нормально до строки: return self.redirect(/admin_page). Добавил подробности в первый пост. - person user2653179; 07.09.2013
comment
Проблема была решена: полученное значение результата было строкой 0, а не 0 как целое число. Спасибо еще раз :) - person user2653179; 07.09.2013

Вам нужно вернуть html из вашего метода App.post():

self.response.write("<html><body>Test</body></html>")

или перенаправить на другую страницу.

person RickyA    schedule 07.09.2013
comment
Спасибо, но это также происходит с редиректом. Добавил строчку в первый пост. - person user2653179; 07.09.2013