그래서 난 당신이 사용 webapp2.RequestHanlder
에서 상속 클래스 내에서 GAE에 리디렉션 할 수 있습니다 알고 :이, 그것으로 좋은 것 작동하지만앱 엔진 : 클래스의 외부에서 리디렉션하는 방법
class Foo(webapp2.RequestHandler):
def get(self):
self.redirect('https://google.com')
을 클래스 외부에서 리디렉션을 수행 할 수 있어야합니다. 당신이 함수에서 리디렉션 할 수 있다면
def fetch_url(url, method=urlfetch.GET, data=''):
"""Send a HTTP request"""
result = urlfetch.fetch(url=url, method=method, payload=data,
headers={'Access-Control-Allow-Origin': '*'})
return result.content
, 당신이 상태 코드를 확인할 수 있습니다 : 그것은 내부 클래스의 존재하지 않는, 즉 - 예를 들어
, 당신은 전역 함수가 다음과 같은 코드가 있다고 가정 해 오류 페이지로 리디렉션하십시오. 예 :if result.status_code != 200:
urllib2.urlopen('/error_page.html')
return
불행히도 위의 코드는 GAE에는 아무런 영향을 미치지 않으며 다음 경고가 생성됩니다.
WARNING 2014-05-22 21:58:24,364 urlfetch_stub.py:482] Stripped prohibited headers from URLFetch request: ['Host']
클래스 외부에서 리디렉션을 수행하는 방법이 있습니까?
재미를 위해, 여기에 내가 구현 한 일부 오류는 : 나는 당신의 코드를 구현할 때''[NotFoundError는 LoginRequiredError는 LoginUnderPrivileged는 ForbiddenError는 RedirectError]'' – Josh
그래서 난이 얻을 : 파일을 "/ 사용자/bengrunfeld/데스크탑 /Work/code/wf-ghconsole/console/auth.py ", 줄 53, fetch_url에서 raise RedirectError ("http://www.google.com ") RedirectError 정보 2014-05-22 22:49 : 38,562 module.py:639] 기본값 : "GET/HTTP/1.1"500 228 아이디어가 있으십니까? – Ben
네, @BenGrunfeld는 요청에 대한 핸들러이고,''MyWebappFramework''의 하위 클래스입니까? 그렇지 않다면,''handle_exception'' 메쏘드는 예외를 잡기 위해 연결되지 않습니다. 즉,''fetch_url'' 호출은''MyWebappFramework'' 서브 클래스로 역 추적합니까? – Josh