【问题标题】:How to send POST request using flask.redirect?如何使用 flask.redirect 发送 POST 请求?
【发布时间】:2019-07-08 12:21:17
【问题描述】:

我正在尝试创建一个烧瓶服务,我想将来自一个 request.form 的数据以 json 格式发送到另一个 url,请谁能帮我实现这一目标?

redirect(url_for('any_method'), json = json.dumps(my_form_dict))

当我尝试执行上述代码时,出现以下错误:

TypeError: redirect() got an unexpected keyword argument 'json' The above is the error here.

【问题讨论】:

  • 问题到底出在哪里?您已经有了解决方案,只需在第一条路线中通过json=request.form...
  • 不,这不是解决方案。尝试运行时出现以下错误:TypeError:redirect() got an unexpected keyword argument 'json'
  • 您能提供更多信息吗?你目前的结果是什么,你期待什么?任何错误信息,一些例子......
  • TypeError: redirect() got an unexpected keyword argument 'json' 以上是这里的错误..
  • 好的,尝试编辑问题并添加此详细信息以使其更清晰。

标签: python redirect post flask


【解决方案1】:

无法重定向 POST 请求。 更多信息是here

【讨论】:

    【解决方案2】:

    您可以使用 307 状态码重定向 POST 请求。 使用:

    redirect(url_for('any_method', json=json.dumps(my_form_dict)), code=307)
    

    有关更多信息,请参阅此答案: Make a POST request while redirecting in flask

    【讨论】:

      【解决方案3】:

      您的问题是您向redirect 函数传递了太多参数。它只需要三个参数,locationcodeResponse。如果要传递额外的参数,请使用 Flask url_for 方法:

      redirect(url_for('any_method', json=form_json))
      

      注意区别,您将url_for 和额外字段作为两个参数传递。在我的版本中,我在url_for 中添加了额外的字段,因此redirect 只接收一个参数。

      【讨论】:

      • 这个答案解决了你的问题吗?如果是这样,请投票并将此答案标记为正确。
      • 我也试过上面的代码,但是flask的request.json不能用上面的步骤。即使使用上述方式,我也没有在请求中获得 json
      • 看一下请求对象,可能你没有将它作为form发送,尝试访问request.data
      猜你喜欢
      • 2011-08-04
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2012-07-04
      相关资源
      最近更新 更多