使所有Django URL不区分大小写?

时间:2016-11-03 22:54:40

标签: python django

我正在使用相当大的Django设置,其中包含70多个应用程序。最近的一个请求是使其与不区分大小写的URL一起使用。有没有办法让其中的每个应用程序使用不区分大小写的URL而不必更改每个应用程序的urls.py?

这是一个相当简单的过程,让单个应用程序不区分大小写(例如:Case insensitive urls for Django?),但考虑到应用程序的数量,是否有更好的(例如:中间件)方式?

1 个答案:

答案 0 :(得分:0)

  1. Midddleware?好吧,您可以将请求本身重定向或更改为process_requestlower(url)或更复杂的内容。我会避免这样做,就像“70多个应用程序”一样,你会产生很大的额外负担。

  2. 您可以配置您的网络服务器(nginx?apache?)。我相信这是一个很好的方式。

  3. 您可以grep and sed来源。如果您的IDE不提供此类功能。这就是我绝对喜欢的。

  4. 您可以将urlpatterns打包到一个方法中,该方法会在每个正则表达式(网址格式)前应用(?i)

  5. 当然,你可以随时修补一些东西。但这是一个非常非常难看的解决方案。不过,如果您感到绝望,urlresolvers

  6. LocaleRegexProvider.regex