2012-08-22 1 views
1

을 GET :장고 URL 디스패처는 urls.py 파일에서 인수

url(r'^api/user_info/(?P<username>[a-zA-Z\d]+)\&', 'corresponding.view') 
url(r'^api/user_info/(?P<username>[a-zA-Z\d]+)', 'corresponding.view') 

항상 /api/user_info/username에 HTTP 가져 오기 인수가있을 것입니다.

문제는 corresponding.view 기능에, username 대신은 "MyUserName 에다"와 request.GET['clientversion'] = "2.0"에 평가의 "MyUserName 에다? clientversion = 2.0"같은 것으로 평가하는 것입니다.

첫 번째 url은 앰퍼샌드를 잡으려고 시도하지만 도움이되지 않습니다. 사전에

감사합니다.

답변

4

this question; Django의 URLConf를 사용하여 쿼리 매개 변수에 액세스하지 않습니다. URL 확인자를 사용하여 ? 또는 &자를 처리하려고해도 행복으로 이어지지 않습니다. 당신이 필수 해야 말을하는 경우,

def view(request): 
    client_version = request.GET.get('clientversion') 
    ... 

을 또는 :

그냥 다음 URL 패턴을 사용

url(r'^api/user_info/(?P<username>\w\+)/$', 'corresponding.view') 

을하고 corresponding.view() 함수에서 clientversion 쿼리 매개 변수에 액세스

from django.http import Http404 

def view(request): 
    try: 
     client_version = request.GET['clientversion'] 
    except KeyError: 
     raise Http404 
+0

저를 위해 아주 계몽적이었습니다. 고맙습니다. 그러나 내 진정한 문제는 내 마지막에 순수한 어리 석음이라는 것을 깨달았습니다. 클라이언트 소프트웨어가 HTTP GET 매개 변수가 '&'로 시작하는 페이지 대신 '?'가 아닌 페이지를 요청하고있었습니다 ... ... 몇 시간 전에 알아 챘습니다. 그 중 하나 ... –