GAE Python WebApp2 url / resource /:id / resource

时间:2017-10-13 05:43:39

标签: google-app-engine webapp2

我正在尝试编写一个具有“boat”资源的API,并且我希望使用ID和其他资源构建该URL。

localhost:8080/boat/absk12712480/arrival

我最初有:

app = webapp2.WSGIApplication([
    ...
    ('/boat/(.*)/arrival', ArrivalHandler),
    ...
    ], debug=True)

但是,这仍然抓住了“/到达”作为身份证的一部分。所以我试过了:

('/boat/(.*?(?=\/)/arrival', ArrivalHandler)
('/boat/(.*?(?=\/arrival)/arrival', ArrivalHandler)

我正在尝试做什么,如果是这样的话?

1 个答案:

答案 0 :(得分:1)

('/boat/(.*)/arrival', ArrivalHandler)中,正则表达式过于贪婪,与webapp2 URI format不匹配。如果ID总是只是小写的ascii和数字,你可以使用:

('/boat/<:[a-z0-9]+>/arrival', ArrivalHandler)

应该工作,或者

('/boat/<id:[a-z0-9]+>/arrival', ArrivalHandler)

如果你想要一个命名参数。