【发布时间】:2009-10-03 00:21:15
【问题描述】:
在与run_wsgi_app(webapp.WSGIApplication(urlpatterns)) 中的 urlpatterns 匹配之前,是否有任何直接将所有传入 url 转换为小写的方法?
【问题讨论】:
标签: python google-app-engine web-applications
在与run_wsgi_app(webapp.WSGIApplication(urlpatterns)) 中的 urlpatterns 匹配之前,是否有任何直接将所有传入 url 转换为小写的方法?
【问题讨论】:
标签: python google-app-engine web-applications
您必须使用您自己的 WSGI 应用程序来包装 WSGIApplication 的实例,该应用程序将 WSGI 环境中的 URL 小写——但随后环境将保持修改状态,这可能会产生其他不愉快的影响。为什么不直接将(?i) 添加到您在urlpatterns 中使用的正则表达式模式中?
【讨论】:
(?i) 添加到模式中即可;例如,使用'(?i)/(?P<some_category>\w+)/edit/(?P<item_id>\w+)/?'(就像你的模式加上前面的(?i),告诉re匹配不区分大小写。见docs.python.org/library/re.html?#regular-expression-syntax。
我想知道你是否可以在执行 WSGIApplication 实例之前修改你的 CGI 环境变量。
os.putenv(os.getenv('PATH_INFO').lower())
类似的东西。我自己对 URL 进行了轻微的修改,但是我 301 重定向到了新的 URL;我没有继续处理 WSGI。
【讨论】: