2011-07-27 6 views
0

내 djang URL 패턴 파일에서 하위 URL을 많이 보유하고 싶습니다.하지만 추한 것으로 만들고 싶지는 않습니다.Django의 url.py 파일에서 여러 하위 URL 처리하기

나는 내 Ajax 요청을 모두 처리하는 파일 (그것이 얻는 요청에 따라 다른 JSON 파일을 출력이

예 (내 url.py에서). 형태 : (URL,지도 (ajax/do_a, ajax.do_a) ajax/do_b, ajax.do_b) ajax/do_c, ajax.do_c) ajax/do_d, ajax.do_d)

)에 이러한 예 모든 하위의 URL이다. mywebsite.com/ajax/do_a 기본적 do_a, do_b, do_c 및 do_d 등

은 mywebsite.com/ajax/do_b 모든 다른 요청 처리기 "ajax.py"파일에서 동일하게 사용됩니다. 난 정말 내 urls.py 파일을 Ajax 요청에 대한 이러한 모든 URL로 채우고 싶지 않습니다. 나는 이걸 이동하려고 생각하고 있었다. 그래서 나는 단지 url.py 파일에 ajax/ 을 가지고있다. 그리고 어떻게 든 아약스/요청 URL을 (ajax.py 파일에서) 요청 처리자로 파싱한다. 그래서 나는 어떤 문자열이 왔는지 알 수있다. "아약스 /". 나는 이것을하는 방법이나 이것이 좋은 생각이 될지 모르겠다 .... 누군가 조언을 해줄 수 있을까? 감사합니다 :)

+0

나는 그 하위 URL을 호출 할 것이고, 당신이보고 싶을 수를 [ named groups] (https://docs.djangoproject.com/ko/1.3/topics/http/urls/#named-groups) 또는 [url에서 텍스트 캡처] (https://docs.djangoproject.com/ko/1.3/topics/http/urls/# 명명 된 그룹). –

+0

모든보기가 고유 한보기가되어야합니까? 아니면 'www.example.com/ajax/do_a'의 'do_a'부분을 동일한보기로 전달할 수 있습니까? –

+0

@j_syk 질문이 정확하지 않습니다. – aerain

답변

1

당신이 그들을 처리하기 위해 디스패처보기를 설정할 수 있습니다. 예를 들어, urls.py에서 : 다음

(r'^ajax/do_(?P<do_token>(\d+))/$', 'do_dispatcher', {}, "di_dispatcher"), 

는 자신을 처리 할 수있는보기 제공 :

def do_a(request): 
    pass 
def do_b(request): 
    pass 
def do_c(request): 
    pass 

DO_LOOKUP = { 
    'a' = do_a, 
    'b' = do_b, 
    'c' = do_c, 
} 

def do_dispatch(request, do_token): 
    do_func = DO_LOOKUP.get(do_token, None) 
    if do_func is None: 
     return HttpResponseNotFound("No do could be found for token '%s'!" % do_token) 
    else: 
     return do_func(request) 
관련 문제