2010-07-16 3 views
3

방금 ​​Python을 사용하여 Google App Engine을 시작했으며 웹 응용 프로그램 프레임 워크를 익숙하게하기 위해 자습서를 읽고 나만의 작은 응용 프로그램을 작성했습니다. 이제 방금 튜토리얼에서 다음을 확인했습니다. self.redirect('/'). 그래서 저에게 궁금한 점이 있습니다 : 하드 코딩 된 경로 대신 처리기로 리디렉션 할 수있는 방법이 있습니까? 앱을 손상시키지 않고 URL을 변경할 수 있도록하는 것이 더 나을 것이라고 생각할 수 있습니다.Google App Engine : Redirect to RequestHandler

답변

3

다른 대안은 매핑 된 URL로 리디렉션 할 수있는 방식으로 심볼 이름을 URL에 매핑하는 것입니다. 그런 다음 URL을 무방비로 업데이트 할 수 있습니다.

다른 처리기에서 코드를 실행하고 싶다면 메서드 호출을 할 수없는 이유를 모르겠습니다. 최악의 경우 두 핸들러에서 공통 메서드를 추출하여 호출 할 수 있습니다. .

1

이것은 App Engine의 제한 사항이 아니므로 webapp 프레임 워크만큼이나 중요합니다. webapp는 필수 요소 만 제공하는 가벼운 프레임 워크입니다.

fancier redirect behavior을 원할 경우 장고를 사용해보십시오.

0

은 허용 대답은 내가 webapp2에 당신이 당신의 경로 이름을 지정하고 다음 webapp2 Uri routing

app = webapp2.WSGIApplication(
       routes=[webapp2.Route('/', handler='RootController', name='root')]) 

에 설명 된대로 그 이름을 사용하여 리디렉션 다음 RequestHandler를 그들에게 리디렉션 할 수 있습니다 실현하기 전에 내 자신의 작은 라우터를 내장했다

self.redirect_to('root') 

경로가 자리 당신이 자리에 대한 값을 제공 할 수 있고, webapp2.Router 당신을 위해 올바른 URI를 구축 할 것입니다 포함 된 경우. 더 자세한 정보는 webapp2 Uri routing을 다시보십시오.