Google App Engine中的动态页面

时间:2013-08-13 08:37:57

标签: python google-app-engine url

我有一个页面的代码,其中的类格式为

class page1(webapp2.RequestHandler):
    ...code...

class page2(webapp2.RequestHandler):
    ...code...

等等。然后我有

application = webapp2.WSGIApplication([
    ('/', page1),
    ('/page2', page2),
    ...(other pages)...
], debug=True)

有些网址我不知道,所以我不能把它们放在应用程序部分。我知道他们的形式是

'/page2/[something]'

'/page2/[something]/[something_else]'

等等,但除此之外,我对它们一无所知。我想将'/ page2 / [something]'与page2类匹配。我点击了一个超链接,它将我带到'/ page2 / abc'或'/ page2 / def'页面,我希望它们都与同一页面类配对。我该怎么做呢?

编辑:

我尝试使用正则表达式映射,

application = webapp2.WSGIApplication([
    ('/', page1),
    ('/page2', page2),
    ('/page2/*', page2)
], debug=True)

但是当我使用url / page2 / [something]转到任何页面时,它会给我一个404 Not Found错误。

1 个答案:

答案 0 :(得分:1)

您需要做的是阅读here并按照指定的方式映射您的网址。 看看这一行:

webapp2.Route(r'/products/<product_id:\d+>', handler=ProductHandler, name='product'),

这意味着你会期望一个整数(d+表示1个或更多个数字,顺序,如1,123,12491479等),你可以在视图中将这些信息作为product_id < / p>

这是regex mapping的含义。如果您不知道您的params会是什么样子,我建议您将它们存储在GET请求中,这样您就不需要为那些

指定地图了
('/page2/.*', page2)

足以捕获/page2/?param=val&param=val&...

形式的网址