GAE Google AppEngine - Как обработать маршрутизацию внутри домена в домене в потоке Python27? - PullRequest
1 голос
/ 22 марта 2012

Раньше я делал это в GAE Python25 для обработки маршрутизации запросов в приложении к www.example.com и blog.example.com (обратите внимание на разницу в поддоменах) в одном и том же приложении, используя следующий код: *

#app.yaml
- url: /
  script: main.py

#main.py
applications = {
  'www.example.com': webapp.WSGIApplication([('/', MainHandler)],
                                      debug=False),
  'blog.example.com': webapp.WSGIApplication([('/', BlogHandler)],
                                      debug=False)
}

def main():
    host = os.environ['HTTP_HOST']
    if host in applications:
        run_wsgi_app(applications[host])
    else:
        run_wsgi_app(applications['www.example.com'])

if __name__ == '__main__':
  main()

Но в Python27 формат отличается. Это следующее:

#app.yaml
handlers:
- url: /
  script: main.app  # (instead of main.py)


#main.py
app = webapp2.WSGIApplication([(r'/', MainPage)],debug=True)

Как мне достичь той же функциональности в Python27 (threadsafe) и перенаправить разные субдомены на разные обработчики в приложении?

Спасибо!

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Просто используйте маршрутизацию домена webapp2 http://webapp -improved.appspot.com / guide / routing.html # domain-and-subdomain-routing

0 голосов
/ 22 марта 2012

Вам нужно сделать это на уровне обработчика, примерно так:

#main.py
applications = webapp2.WSGIApplication([('/', GlobalMainHandler)], debug=False)

и в обработчике:

class GlobalMainHandler(webapp2.RequestHandler):
  def get(self):
    if self.request.host.startswith('blog'): #not sure it is called host, but its there
      self.blog_main()
    else:
      self.the_other_main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...