2009-10-04 13 views
31

Domyślnie solver django wykonuje rozróżnianie małych i wielkich liter pod kątem rozróżniania adresów URL i rozróżnia "/ Login" i "login". Moje wzorce adresów URL są następujące.Adresy niewrażliwe na wielkość liter dla 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), 
) 

Czy ktokolwiek może mnie poprowadzić, jak sprawić, aby wielkość liter w django nie była wraŜliwa?

Odpowiedz

82

Wystarczy umieścić (?i) na początku każdego r'...' ciąg, czyli:

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

powiedzieć każdy RE dopasować rozróżniana wielkość liter - i, oczywiście, żyli długo i szczęśliwie -)

+0

! Udało się .... Dziękuję bardzo ... Czy możesz zaproponować mi dobre zasoby do nauki wyrażeń regularnych za pomocą Pythona? –

+3

http://www.regular-expressions.info/ jeśli potrzebujesz darmowych informacji o piwie; http://docs.python.org/library/re.html dla informacji specyficznych dla Pythona; 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% 20expression & f = false, jeśli możesz sobie pozwolić na zainwestowanie (świetna książka! -). –

+2

Dodatkowo, ponieważ (? I) jest flagą regularną ekspresową, nie musi być po Karcie. Na przykład '(r '(? I)^logout/$', do_logout),' działa również i może być bardziej czytelne dla niektórych. Inne znaczniki regex, które mogą być używane w wyrażeniu to: 'L', 'm', 's', 'u', 'x', jak omówiono w (? ILmusx) na [https://docs.python.org/2 /library/re.html](https://docs.python.org/2/library/re.html). – ChrisFreeman

Powiązane problemy