Google App Engine 自我重定向 POST

2 投票
1 回答
6239 浏览
提问于 2025-04-15 11:41

我有一个表单,它会把信息发送到我的一个处理程序。这个处理程序会验证这些信息,然后需要把这些信息再发送给一个第三方,并且把用户重定向到那个页面。

下面是一个例子:

    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 概述

撰写回答