2014-09-19 4 views
0

나는 일치 일부 URL이 : 나는 그들이 할 필요에 대해 생각URL의 끝을 GET 매개 변수없이 변수로 사용 하시겠습니까?

(r'foo/[1-9]?[0-9]/?', Foo) 

를 예를 들면, mydomain.tld/foo?n=84 내가 GET 매개 변수없이 permalinks 가질 좋은 정식 (?) 스타일 생각하기 때문에.

class Handler(webapp2.RequestHandler): 
    #... 
    def currentURL(self): 
     return self.request.path_qs 

class Foo(Handler): 
    def get(self): 
     n = re.match(r'.+/([1-9]?[0-9])/?', self.currentURL()).group(1) 
     #do something with n 

을하지만 청소기, 덜 해키 방법이있다 :

나는 현재하고 있는가? https://webapp-improved.appspot.com/guide/routing.html에서

+0

https://webapp-improved.appspot.com/guide/routing.html 봐 ...

(r'foo/([1-9]?[0-9])/?', Foo) 

작동합니다 생각 코드의 첫 번째 블록에서 ... (해당 블록의 마지막 예) –

+0

실제 URL을 어떻게 보이길 원하나요? 'http : // mydomain.tld/foo/n/84'? 인수가 여러 개인 경우 어떤 순서로도 올 수 있습니까? 정규 표현식을 사용하는 것만으로도 해킹하고 모호한 경우 (자신의 입장에서) 의도하는 규칙을 우리에게주지 않습니다. – abarnert

+0

@JoranBeasley 오 와우, 그건 내가 예상했던 것보다 깔끔한 해결책이다! 예를 들어 게시하면 답변을 수락합니다. – OJFord

답변

2

... 나는 다음 다음

class Foo(Handler): 
    def get(self,n): 
     print n