Как создать подпути, которые точно соответствуют имени пользователя - PullRequest
1 голос
/ 19 февраля 2011

После того, как я направлю пользователей на их страницы, например /example/john, как мне заставить webapp.RequestHandler обрабатывать эту страницу?Если я делаю ('/user.*', UsersSubPath), который соответствует всем страницам после /user/, если я делаю ('/user/user.name*', UsersSubPath), это тоже не работает, поскольку он не может заменить user.name именем пользователя автоматически.Кстати, self.redirect('something'), возвращает строку URL или ничего?

Спасибо.

1 Ответ

3 голосов
/ 19 февраля 2011

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

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util


class ExampleHandler(webapp.RequestHandler):
    def get(self, name="default"):
        self.response.out.write('Hello %s!' % name)


def main():
    application = webapp.WSGIApplication([('/example/(\w+)', MainHandler)],
                                         debug=True)
    util.run_wsgi_app(application)

... в спискеиз обработчиков бит (\w+) указывает системе сопоставить один или несколько символов «слова» и объединить их в группу.Эта группа символов будет передана в метод get() класса ExampleHandler.

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