2016-06-04 6 views
0

나는 현재 URL 맵핑이 어떻게 작동하는지 이해하기 위해 다양한 Django 튜토리얼을 검토 중이다. 나는이 내 urls.py에이URL 매핑이 작동하는 이유를 이해하지 못 하셨나요?

같은 것입니다 예를 건너 왔어요 현재

<a href="{% url "admin_page_edit" %}?uname=SomeVal&par2=value" > 

이제 사용자에게 표시되는

url(r'admin_page_edit$',"adminApp.views.showClientDetails",name="admin_page_edit"), 

이 내 html 페이지에 위의 href 링크를 클릭하면 브라우저에 표시되는 URL입니다. 거기에 어떤 문제

http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value 

그리고 해당보기 지금 여기

adminApp.views.showClientDetails 

위의 URL 땅이 모든 작업에 보인다하지만 난 왜이 작동에 관한 혼란 스러워요의 proble입니까? 브라우저의 URL이 때문에 URL의 정규식 문자열과 일치하지 않습니다

http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value 

admin_page_edit$ 

하지만 URL 문자열이 종료되지 않습니다 (문자열이 admin_page_edit로 끝나는 경우에는, 위의 정규식 수단) admin_page_edit로 대신은

http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value 

따라서 par2=value

로 끝나는입니다

내 질문은 왜 URL 정규식이 일치하지 않을 때보기에서 해당 정의를 때리는 것입니까?

+0

비아 장고보기에 액세스 할 수 있습니까? 대개 다음은 값이 될 것입니다. 페이지가? 다음은 해당 페이지에 대한 POST 메소드로 전송되는 값입니다. – AK47

+0

매핑 경로는 URL의 경로에 매핑됩니다.이 경우에는/admin_page_edit과 일치합니다. URL의'? ...'부분은 [query] (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax)입니다 (** POST 데이터는 btw가 아닙니다). –

답변

2

쿼리 문자열 (? 다음의 부분)은 Django URL 구문 분석기에서 처리하지 않습니다. 왜? 왜냐하면 그들은 처리 될 필요가 없기 때문입니다. 모든 검색어 문자열을 임의의 URL에 추가 할 수 있습니다.

처럼 : https://www.facebook.com/?request=pleasedonotwork 모두 똑같이 작동합니다. 리디렉션 (또는 일부 로깅)이 URL로 전송 된 쿼리를 기반으로 수행되지 않는 경우 URL의 쿼리 부분을 수동으로 간주 할 수 있습니다.

이 쿼리 문자열

request.GET QueryDict

관련 문제