Google App Engine 自我重定向 POST
我有一个表单,它会把信息发送到我的一个处理程序。这个处理程序会验证这些信息,然后需要把这些信息再发送给一个第三方,并且把用户重定向到那个页面。
下面是一个例子:
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')
你有没有什么建议,能让我把用户重定向到我提交表单的那个页面?
我希望能有一个类似self.redirect()的功能,这样可以把信息POST到第三方网站,但我觉得这可能不太可行。
我的目标是在把数据发送给第三方之前先检查一下提供的数据。还有其他我可能忽略的选项吗?
1 个回答
1
你可以提交表单,然后把用户引导到另一个页面,但这两个操作必须分开进行。
urlfetch.fetch()
这个方法让你可以把请求方式设置为POST,像这样:
import urllib
form_fields = {
"first_name": "Albert",
"last_name": "Johnson",
"email_address": "Albert.Johnson@example.com"
}
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 概述。