2014-06-24 3 views
0

저는 python과 django를 사용하여 내 사이트의 URL을 찾습니다. 다음과 같은 URL과 일치해야합니다 : /company/code /? code = 34k3593d39kRegex는 문자열로 시작합니까? code =

? code = 뒤에 오는 부분은 문자와 숫자의 조합이며 길이는 임의입니다.

지금까지이 시도했습니다

r'^company/code/(.+)/$' 
r'^company/code/(\w+)/$' 
r'^company/code/(\D+)/$' 
r'^company/code/(.*)/$' 

그러나 지금까지 아무도 식을 잡기되지 않습니다. 어떤 아이디어? 당신이에 바로 ^ 후 마지막 /를 이동하는 경우 감사

답변

2

code=34k3593d39kGET이며 URL 패턴에 패턴을 정의 할 필요가 없습니다. 보기에서 request.GET.get('code')을 사용하여 액세스 할 수 있습니다. 패턴은해야합니다 :

r'^company/code/$' 

사용, 접근 GET 매개 변수 :

def my_view(request): 
    code = request.GET.get('code') 
    print code 

이 확인 documentation :

URLconf는 정상적인 파이썬 문자열로 요청 된 URL에 대한 검색

. 여기에는 GET 또는 POST 매개 변수 또는 도메인 이름이 포함되지 않습니다.

+0

코드 = request.GET.get ("code")이어야합니까? 내가 UnboundLocalError를 얻고 있기 때문에 코드가 할당되기 전에 참조 할 곳이 – Nick

+0

@ user3749797 예. 간단한 오타입니다. –

1

첫 번째 패턴은 작동합니다 : 너무

>>> import re 
>>> re.match(r'^/company/code/(.+)$', '/company/code/?code=34k3593d39k') 
<_sre.SRE_Match object at 0x0209C4A0> 
>>> re.match(r'^/company/code/(.+)$', '/company/code/?code=34k3593d39k').groups() 
('?code=34k3593d39k',) 
>>> 

참고 ^이 불필요하다고 때문에 문자열의 시작부터 re.match 경기 :

>>> re.match(r'/company/code/(.+)$', '/company/code/?code=34k3593d39k').groups() 
('?code=34k3593d39k',) 
>>>