【问题标题】:GAE Python WebApp2 url/resource/:id/resourceGAE Python WebApp2 url/resource/:id/resource
【发布时间】:2017-10-13 05:43:39
【问题描述】:

我正在尝试编写一个具有“船”资源的 API,并且我想使用 ID 和另一个资源来构建该 URL。

localhost:8080/boat/absk12712480/arrival

我原来有:

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

但这一直将“/arrival”作为 ID 的一部分。所以我尝试了:

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

我正在尝试做的事情是否可行?如果可以,该怎么做?

【问题讨论】:

    标签: google-app-engine webapp2


    【解决方案1】:

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

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

    应该可以工作,或者

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

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

    【讨论】:

    • 感谢您的帮助。在您的正则表达式帮助下,我找到了解决方案。 ('/boat/([A-z0-9\-]+)/arrival' 我需要 () 因为我正在使用 Lazy Handler
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2012-12-02
    相关资源
    最近更新 更多