2009-10-04 25 views
31

यह डिफ़ॉल्ट रूप से लगता है कि डीजेंगो के यूआरएल सॉल्वर यूआरएल को हल करने के लिए केस संवेदनशील खोज करते हैं और '/ लॉगिन' और 'लॉगिन' के बीच अंतर करते हैं। मेरे यूआरएल पैटर्न इस प्रकार हैं।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 urls केस असंवेदनशील बनाने के लिए?

उत्तर

82

बस हर r'...' स्ट्रिंग के शुरू में (?i) शब्दों में कहें, अर्थात्:

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

बताने के लिए हर मैच के लिए केस-insensitively RE - और, ज़ाहिर है, रहते हैं खुशी से -)

+0

! यह काम किया .... बहुत बहुत धन्यवाद ... क्या आप पाइथन का उपयोग करके नियमित अभिव्यक्ति सीखने के लिए मुझे अच्छे संसाधन सुझा सकते हैं? –

+3

http://www.regular-expressions.info/ यदि आपको निःशुल्क-इन-इन-फ्री-बियर जानकारी की आवश्यकता है; पायथन-विशिष्ट जानकारी के लिए 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% 20 एक्सप्रेशन और एफ = झूठी अगर आप निवेश कर सकते हैं (महान पुस्तक! -)। –

+2

इसके अतिरिक्त, चूंकि (? I) एक नियमित एक्सप्रेस ध्वज है, इसलिए इसे कैरेट के बाद नहीं होना चाहिए। उदाहरण के लिए, '(आर' (? I)^लॉगआउट/$ ', do_logout),' कुछ भी काम करता है और कुछ के लिए और अधिक पठनीय हो सकता है। अन्य regex झंडे जो एक्सप्रेस के भीतर उपयोग किया जा सकता है 'एल', 'एम', 'एस', 'यू', 'एक्स' के रूप में चर्चा की गई है (? ILmusx) [https://docs.python.org/2 पर /library/re.html](https://docs.python.org/2/library/re.html)। – ChrisFreeman

संबंधित मुद्दे