Django

2009-10-25 2 views
10

में अजगर नियमित अभिव्यक्ति का उपयोग करते हुए मैं एक वेब पता:Django

http://www.example.com/org/companyA

मैं नियमित अभिव्यक्ति का उपयोग कर किसी दृश्य पर कंपनी की पारित करने में सक्षम होना चाहता हूँ।

(r'^org/?P<company_name>\w+/$',"orgman.views.orgman") 

और यह मेल नहीं खाता:

यह है कि मैं क्या है।

आदर्श रूप से सभी यूआरएल जो example.com/org/X की तरह दिखते हैं, वे एक्स को दृश्य में पास करेंगे।

अग्रिम धन्यवाद!

उत्तर

19

आपको समूह नाम कोष्ठक में लपेटने की आवश्यकता होनी चाहिए। नामित समूहों के लिए वाक्यविन्यास (?P<name>regex) है, ?P<name>regex नहीं। साथ ही, यदि आप पिछली स्लैश की आवश्यकता नहीं चाहते हैं, तो आपको इसे वैकल्पिक बनाना चाहिए।

यह उदाहरण के लिए, पायथन दुभाषिया के साथ मिलान नियमित अभिव्यक्ति का परीक्षण करना आसान है:

>>> import re 
>>> re.match(r'^org/?P<company_name>\w+/$', 'org/companyA') 
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA') 
<_sre.SRE_Match object at 0x10049c378> 
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA').groupdict() 
{'company_name': 'companyA'} 
+0

यह अद्भुत है। मैं इस तरह कुछ ऑनलाइन खोज रहा था! –

1

यह देखना चाहिए और अधिक r'^org/(?P<company_name>\w+)'

>>> r = re.compile(r'^org/(?P<company_name>\w+)') 
>>> r.match('org/companyA').groups() 
('companyA',) 
2

की तरह आपका रेगुलर एक्सप्रेशन से मान्य नहीं है। यह शायद

r'^org/(?P<company_name>\w+)/$'