【问题标题】:RedirectRoute in Google App Engine and url argumentsGoogle App Engine 中的 RedirectRoute 和 url 参数
【发布时间】:2013-10-21 15:48:30
【问题描述】:

我有一个像 /do/some/<action:.*> 这样的 RESTful API,所以我的应用程序使用了 <action> 并运行它。

我的问题是,如果我使用 RedirectRoutestrict_slash=True,我的应用会继续获取 <action> 作为参数还是会开始获取 <action>/(注意末尾的 /)?

编辑:我正在使用 webapp2

【问题讨论】:

    标签: python google-app-engine webapp2


    【解决方案1】:

    RedirectRoute 将发出 HTTP 重定向,告诉浏览器转到新 URL,然后浏览器将在该 URL 发出新请求。

    这是如何实现的,即创建了 两条 路由 - 您的原始路由和一个用于重定向的路由。

    因此,在您的情况下,将创建一个带有/do/some/<action:.*>/ 的路由并重定向到/do/some/<action.*>

    但是,我认为实际上会首先检查您的路线(不是肯定的,抱歉),所以它总是会触发。如果可以的话,我会将其修改为不匹配斜杠。幸运的是,如果您省略了正则表达式,这是默认行为,所以 /do/some/<action:> 应该可以工作!

    【讨论】:

    • 嗨!感谢您的回复,但我指的是我的处理程序中<action> 的值。示例:wget www.myhost.com/do/some/say_hello -> action 的值为say_hellowget www.myhost.com/do/some/say_hello/ 会使<action> 的值也变为say_hello 吗?还是say_hello/
    • 我明白了。我认为您的处理程序不适用于strict_slash 操作,因此它实际上会得到say_hello/。如果您将处理程序更改为<action:>(禁止/在操作中使用),则应始终为say_hello
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 2011-03-21
    • 2012-12-20
    相关资源
    最近更新 更多