2009-10-04 87 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