2009-05-19 4 views
2

내 처리기 중 하나에 정보를 POST하는 양식이 있습니다. 내 처리기는 정보를 확인한 다음이 정보를 제 3 자에게 게시하고 사용자를 해당 페이지로 리디렉션해야합니다.Google App Engine self.redirect 게시물

class ExampleHandler(BaseRequestHandler): 
    """DocString here... 
    """ 
    def post(self): 
    day = int(self.request.get('day')) 
    checked_day = CheckDay(day) 
    if checked_day: 
     #Here is where I would like to redirect the user to the 3rd party -- but via a post as I will be submitting a form based on data in checked_day on their behalf. 
    else: 
     # Otherwise no post redirect is needed -- just a simple self.redirect. 
     self.redirect('/example') 

예는 내가이 양식을 제출 한 페이지로 사용자를 리디렉션 수있는 방법에 대한 조언이 있습니까?

제 3 자 사이트에 POST를 허용하는 self.redirect()가 이상적입니다. 그러나 이것이 옵션이라고 생각하지 않습니다.

제 목표는 제 3 자에게 데이터를 보내기 전에 제공된 데이터를 확인하는 것입니다. 다른 옵션이 누락 되었습니까?

답변

1

양식을 POST하고 사용자를 페이지로 리디렉션 할 수 있지만 별도의 작업이 필요합니다.

import urllib 

form_fields = { 
    "first_name": "Albert", 
    "last_name": "Johnson", 
    "email_address": "[email protected]" 
} 
form_data = urllib.urlencode(form_fields) 
headers = {'Content-Type': 'application/x-www-form-urlencoded'} 
result = urlfetch.fetch(url=url, 
         payload=form_data, 
         method=urlfetch.POST, 
         headers=headers) 

위의 예는 URL Fetch Python API Overview에서입니다 :

urlfetch.fetch() 방법은 당신과 같이 게시하는 방법을 설정할 수 있습니다.

+0

감사합니다. 도움이됩니다. 제 경우에는 양식을 제출하고 사용자를 리디렉션 할 수 없습니다 - 사용자가 제출 된 양식에서 반환 된 페이지와 상호 작용해야하므로. 루트 질문에 답장을 보내 주셔서 다시 한 번 감사드립니다. – Wasauce