2010-06-25 6 views
5

URL이 포함 된보기에 '문자열'인수를 전달하려고합니다. urls.py 나는 등 구두점, 줄 바꿈, 공백을 포함한 문자열에 문제가있어Django url 구문 분석 - 원시 문자열 전달

('^add/(?P<string>\w+)', add), 

간다. \ w +를 다른 것으로 변경해야한다고 생각합니다. 기본적으로 문자열은 사용자가 선택한 텍스트에서 복사 한 것이므로 변경할 필요가 없습니다. 보기가 사용자가 복사 한 내용에 정확히 적용되도록 모든 문자 및 특수 문자를 허용하려고합니다.

어떻게 변경할 수 있습니까?

감사합니다.

답변

2

먼저 URL에 허용되지 않는 문자가 많이 있습니다. 우선 ?과 공백을 생각하십시오. 장고는 아마 당신이 무엇을해도 당신의 견해에 이들이 전달되는 것을 막을 것입니다.

두 번째로 re 모듈을 읽으려고합니다. URL 일치 구문을 설정하는 것입니다. \w은 대소 문자, 숫자 또는 _을 의미합니다 (기본적으로 식별자 문자는 선행 숫자를 허용하지 않습니다).

문자열을 URL에 전달하는 올바른 방법은 양식 매개 변수입니다 (예 : URL에 ?paramName= 및 특수 문자가 이스케이프 된 경우 (예 : +).

4

올바른 URL로 이해할 수있는 문자열 만 사용할 수 있으므로 URL을 URL로 전달하는 것은 좋지 않습니다.

내 URL을 문자열 값을 허용하려면이 정규식을 사용

(?P<string>[\w\-]+) 

이 '굼벵이를 가질 수 있습니다; 귀하의 URL에 (예 : 'this-is-my_slug')

+0

'\'는'_'을 포함하고'-'는'['(그리고 선택 사항 인'^') 다음에 첫 번째 인 경우 범위 마커가 아닌 문자로 처리되므로 쓸 수 있습니다 '(? P [- \ w] +)'. –