2009-10-04 89 views
31

默认情况下,django的url解析器执行区分大小写的搜索来解决url,并区分'/ Login'和'login'。我的网址格式如下。Django的大小写不敏感吗?

urlpatterns = patterns('', 
    (r'^admin/(.*)', admin.site.root), 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), 
    (r'^login/$', 'django.contrib.auth.views.login'), 
    (r'^logout/$', do_logout), 
) 

任何人都可以请指导我,如何使django url不区分大小写?

回答

82

只要把(?i)r'...'字符串的开头,即:

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), 
) 

告诉每一个RE匹配不区分大小写 - ,当然,生活幸福快乐的日子 - )

+0

!它的工作....非常感谢你...你能建议我用python学习正则表达式的好资源吗? – 2009-10-04 05:30:07

+3

http://www.regular-expressions.info/如果你需要免费的免费啤酒信息; http://docs.python.org/library/re.html针对特定于Python的信息; http://books.google.com/books?id=NYEX-Q9evKoC&dq=regular+expression&printsec=frontcover&source=bll&ots=qon_rQMxev&sig=2Z-RDduTVFdL1LeT8mlNq8GTh5U&hl=en&ei=PzbIStutJYqssgPjscH_BQ&sa=X&oi=book_result&ct=result&resnum=12#v=onepage&q=regular% 20表达&f =虚假如果你有能力投资(伟大的书! - )。 – 2009-10-04 05:46:27

+2

此外,由于(?i)是常规快捷标志,因此不需要在插入符号之后。例如,'(r'(?i)^ logout/$',do_logout)'也适用,对某些人来说可能更易读。其他正则表达式中使用的正则表达式可以是[?iLmusx] [https://docs.python.org/2]中讨论的'L','m','s','u','x' /library/re.html](https://docs.python.org/2/library/re.html)。 – ChrisFreeman 2014-08-09 00:21:05