Google App Engine: перенаправление на RequestHandler - PullRequest
3 голосов
/ 16 июля 2010

Я только начал работать с Google App Engine, используя python, и я следовал руководству и писал свое собственное маленькое приложение, чтобы познакомиться с фреймворком веб-приложений. Теперь я только заметил, что учебник делает следующее self.redirect('/'). Это заставило меня задуматься: есть ли способ перенаправить на обработчик вместо жестко заданного пути? Подумайте, что может быть лучше, чтобы вы могли изменить свои URL-адреса, не нарушая приложение.

Ответы [ 3 ]

3 голосов
/ 16 июля 2010

Одной из альтернатив может быть сопоставление символических имен с URL-адресами, чтобы вы могли перенаправить их на сопоставленный URL-адрес - тогда вы можете безнаказанно обновлять свои URL-адреса.

Или, если вы предпочитаете просто выполнить код из другого обработчика, я не знаю, почему вы не можете просто сделать вызов метода - в худшем случае вы можете извлечь общий метод из двух обработчиков и вызвать его.

1 голос
/ 16 июля 2010

Это не столько ограничение App Engine, сколько структура веб-приложения.Веб-приложение предназначено для облегченного фреймворка, предоставляющего только самые необходимые элементы.

Если вы хотите более интересное поведение перенаправления , попробуйте Django.

0 голосов
/ 27 ноября 2011

Принятый ответ заставил меня построить свой собственный маленький маршрутизатор, прежде чем я понял, что в webapp2 вы можете назвать свои маршруты, а затем перенаправить, используя это имя, как описано в webapp2 Uri маршрутизация

app = webapp2.WSGIApplication(
              routes=[webapp2.Route('/', handler='RootController', name='root')])

и затем перенаправьте их в RequestHandler

self.redirect_to('root')

, если ваш путь содержит заполнители, вы можете указать значения для заполнителей, и webapp2.Router создаст для вас правильный uri.Снова взгляните на webapp2 Uri routing для получения более подробной информации.

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