2017-10-20 2 views
2

지금은 잠시 둘러 보았지만 차이점을 알아 채지 못하는 것 같습니다. 제목 상태로, URL 경로 매개 변수를 통해 귀하의 데이터를 얻으려면 /content/7 urls.py에서 정규식을 사용하여 /content?num=7 같은 request.GET.get()을 사용하여 쿼리 매개 변수를 가져 오는 것과 같은 차이를 실제로 찾으려고합니다.URL 경로 매개 변수 대 장고의 쿼리 매개 변수

각 장의 장점과 단점은 무엇이며, 분명히 다른 것보다 더 나은 선택이 될 수있는 시나리오가 있습니까?

또한 내가 알 수있는 것부터 (장고의) 선호하는 방법은 URL 경로 매개 변수를 정규식과 함께 사용하는 것으로 보입니다. 잠재적으로 더 깨끗한 URL 이외에 어떤 이유가 있습니까? 주제와 관련된 추가 정보는 언제나 환영합니다.

+1

: URL 매개 변수와 쿼리 매개 변수가 같은 일이다. 경로 매개 변수 (URL 매개 변수 대신)를 의미합니다. – dirkgroten

답변

1

이것은 어떤 아키텍처 패턴을 고수하고 싶은가에 달려 있습니다. 예를 들어, REST 아키텍처 패턴 (우리가 가장 일반적이라고 주장 할 수있는)에 따르면, 쿼리 매개 변수없이 응용 프로그램의 명사와 대략 일치하는 "리소스"를 가리킨 다음 HTTP 동사가 해당 리소스에서 수행 할 수있는 작업 예를 들어, 응용 프로그램이 사용자를 가지고있는 경우

,이 같은 URL을 설계 할 것 :

GET /users/ # gets all users 
POST /users/ # creates a new user 
GET /users/<id>/ # gets a user with that id. Notice this url still points to a user resource 
PUT /users/<id> # updates an existing user's information 
DELETE /users/<id> # deletes a user 

그런 다음 리소스에서 사용자 집합을 필터링하는 검색어 매개 변수를 사용할 수 있습니다. 예를 들어, 활성 사용자가 귀하의 URL이

/users?active=true 

그래서 요약하는 것처럼 보일 것 얻기 위해, 쿼리는 대 경로가 당신의 건축 취향에 따라 PARAMS PARAMS. REST의

더 자세한 설명 : http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

로이 필딩의 버전 당신이 정말로 학술 얻으려면 : http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm 당신이 당신의 질문 바꿔한다

+0

따라서 일반적인 시나리오 (일반적으로 REST가 아닌 경우)는 우선 순위가 가장 낮지 만 누군가가 RESTful 원칙을 고수하려고하면 경로는 단일 리소스 또는 적용 가능한 전체 리소스 집합/계층 구조 탐색, 쿼리 매개 변수는 해당 속성을 통해 URL이 가리키는 리소스를 추가로 필터링하기위한 것입니다. 맞지? 지금 당장은 RESTful API없이 프로젝트를 끝내고 내부적으로 모든 것을 처리하여 DRF를 추가하고 적절한 공용 API를 설정하고 이전 방법을 사용하지 않을 수 있다고 생각합니다. – gucciferXCIV

+0

네, 맞습니다. 쿼리 매개 변수는 필터링을위한 것이 아닙니다. 요구 사항에 따라 여러 가지 방법으로 리소스를 정렬하고 반환 할 수도 있습니다. 사용자 이름과 암호를 검색어 매개 변수로 보내지 않도록하십시오.) – slider

+0

URL에 일반 텍스트 비밀번호가 없습니까? 왜 안돼?! 하하, 잘 다시 한번 감사드립니다! 귀하의 대답을 받아 들일 것입니다,하지만 다른 사람이 장고가 쿼리 매개 변수를 통해 경로 매개 변수를 선호하는 이유에 대한 설명이 있다면, 알아내는 것이 좋습니다. – gucciferXCIV