一些帮助django url不区分大小写的工具。
django-icase的Python项目详细描述
一些帮助django url不区分大小写的工具。
- 404处理程序,用于重定向不匹配的非小写URL。例如,如果/about/ 不匹配,处理程序将在返回404之前重定向到/about/
- 实施低大小写URL的中间件。例如,所有非小写URL将 被重定向到小写形式。
概述
如果只需要匹配url模式,那么添加 对正则表达式不区分大小写。:
urlpatterns = patterns('', (r'^(?i)admin/(.*)', admin.site.root), (r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), (r'^(?i)login/$', 'django.contrib.auth.views.login'), (r'^(?i)logout/$', do_logout), )
亚历克斯·马泰利的Stack Overflow explanation。
然而,这并不能与slug匹配,slug通常是区分大小写的 默认匹配-由应用程序决定。如果应用程序使用简单的= 表达式,例如:
object = MyModel.objects.get(slug=slug)
那么,myslug与myslug不匹配。
还有一些情况下,由于其他原因,您希望强制执行url大小写 (或者客户会这样做!).
安装
安装django icase:
pip install django-icase
要使用自定义404处理程序,只需在项目url.py 配置。
handler404 = 'icase.views.icase_404_handler'
要使用小写中间件,请将其添加到 已安装的中间件:
INSTALLED_MIDDLEWARE = ( 'icase.middleware.LowerCased', ... )
django&python支持
此应用程序支持Django的活动支持版本, 尽管没有什么理由不应该对其他人起作用。
测试了Python3和Python2.7.9。
历史记录
0.1.1(2015-05-06)
- 更新django nose reference以支持django 1.7+
0.1.0(2015-03-25)
- pypi上的第一个版本。