【问题标题】:webapp2 DomainRoute with multiple Route具有多个路由的 webapp2 DomainRoute
【发布时间】:2013-06-01 22:12:08
【问题描述】:

我遇到了 URI 路由问题。

http://www.example.com - OK  
http://www.example.com/en - 404  
http://www.example.com/bm - 404  
http://www.example.com/my - 404  
http://www.example.com/zh - 404  
http://www.example.com/cn - 404  

好像忽略了我的第二条路线,我的路线有什么问题?

app = webapp2.WSGIApplication([
routes.DomainRoute(r'<:(localhost|example\.com|www\.example\.com)>', [
  webapp2.Route('/', handler=WebHome, name='WebHome'),
  webapp2.Route('/(en|bm|my|cn|zh)', handler=WebHome, name='WebHome'),
  webapp2.Route('/(en|bm|my|cn|zh)/', handler=WebHome, name='WebHome'),
]),

routes.DomainRoute(r'<:(m2.example.com|m.example.com)>', [
  webapp2.Route('/', handler=MobileHome, name='MobileHome'),
  webapp2.Route('/(en|bm|my|cn|zh)', handler=MobileHome, name='MobileHome'),
  webapp2.Route('/(en|bm|my|cn|zh)/', handler=MobileHome, name='MobileHome'),
]),],
debug=True)

我的网络主页课程

class WebHome(webapp2.RequestHandler):
  def get(self, language='en'):
    buf = 'home for %s' % (language,)
    self.response.write(buf)

【问题讨论】:

  • 我不明白为什么您对不同的路线使用相同的名称(如 WebHome)。该名称可用于构建 uri。也许这就是你的问题的原因。

标签: python google-app-engine python-2.7 webapp2


【解决方案1】:

webapp2.Route 使用 &lt;&gt;,而不是括号。另外,如果name参数都使用相同的handler,则只选择一个Route:

app = webapp2.WSGIApplication([routes.DomainRoute(r'<:(localhost|mysite\.com|www\.mysite\.com)>', [
    webapp2.Route('/', handler=WebHome),
    webapp2.Route('/<language:en|bm|my|cn|zh>', handler=WebHome),
    webapp2.Route('/<language:en|bm|my|cn|zh>/', handler=WebHome, name='WebHome'),
]),

routes.DomainRoute(r'<:(m2.mysite.com|m.mysite.com)>', [
    webapp2.Route('/', handler=MobileHome),
    webapp2.Route('/<language:en|bm|my|cn|zh>', handler=MobileHome),
    webapp2.Route('/<language:en|bm|my|cn|zh>/', handler=MobileHome, name='MobileHome'),
]),], debug=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-12
    • 2012-01-17
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多