2009-10-04 28 views
31

デフォルトでは、djangoのURLソルバーはurlを解決するための大文字と小文字を区別した検索を行い、 '/ Login'と 'login'を区別しているようです。私のURLパターンは以下の通りです。Djangoの大文字と小文字を区別しないURL?

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

ただ、すなわち、すべてのr'...'文字列の先頭に(?i)を置く!:大文字と小文字を区別せずに一致するすべてのREを伝えるために

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

を - そして、もちろん、その後ずっと幸せに暮らす - )

+0

それは働いて...ありがとうございました...私はPythonを使用して正規表現を学ぶための良いリソースをお勧めしますか? –

+3

http://www.regular-expressions.info/フリービールのビール情報が必要な場合は、 Python固有の情報についてはhttp://docs.python.org/library/re.htmlを参照してください。 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(素晴らしい本! - )。 –

+2

さらに、(?i)は正規表現フラグであるため、キャレットの後にある必要はありません。たとえば、 '(r '(?i)^ logout/$'、do_logout)は'うまく動作します。 (https://docs.python.org/2)で説明されているように、「L」、「m」、「s」、「u」、「x」は、Express内で使用できる他の正規表現フラグです(「iLm​​usx」)。 /library/re.html](https://docs.python.org/2/library/re.html)。 – ChrisFreeman

関連する問題