Python 在flask中重定向时发出POST请求

Python 在flask中重定向时发出POST请求,python,redirect,flask,Python,Redirect,Flask,我在用烧瓶。 我的情况是,我需要将post请求重定向到另一个保留请求方法的url,即“post”方法。当我将一个“GET”请求重定向到另一个接受“GET”请求方法的url时,就可以了。 下面是我尝试上述操作的示例代码 @app.route('/start',methods=['POST']) def start(): flask.redirect(flask.url_for('operation')) @app.route('/operation',methods=['POST'])

我在用烧瓶。 我的情况是,我需要将post请求重定向到另一个保留请求方法的url,即“post”方法。当我将一个“GET”请求重定向到另一个接受“GET”请求方法的url时,就可以了。 下面是我尝试上述操作的示例代码

@app.route('/start',methods=['POST'])
def start():
    flask.redirect(flask.url_for('operation'))

@app.route('/operation',methods=['POST'])
def operation():
    return "My Response"
我想向“/start”url发出“POST”请求,该url在内部也向“/operation”url发出“POST”请求。如果我这样修改代码

@app.route('/operation',methods=['GET'])
def operation():
    return "My Response"

对于“GET”请求,代码可以正常工作。但是我也希望能够发出POST请求。

默认情况下,
Flask
中提供的
重定向
功能会向客户端发送302状态代码,如上文所述:

许多web浏览器以违反此标准的方式实现此代码,改变了 要获取的新请求的请求类型,与原始请求中使用的类型无关 请求(如邮寄)。[1] 因此,HTTP/1.1(RFC2616)添加了新的状态代码 303和307来消除这两种行为之间的歧义,其中303命令改变 获取请求类型,307保留原始发送的请求类型

因此,发送307状态代码而不是302应该告诉浏览器保留使用的HTTP方法,从而具有您期望的行为。您对
重定向的调用将如下所示:

flask.redirect(flask.url_for('operation'), code=307)

谢谢你的建议!(鞠躬)我仍然请求提供一个我可以深入学习的来源。我想学习与“代码”相关的东西。我认为这些都是核心。再次感谢:)好吧,在这一点上,我认为没有任何文档可以帮助您,尽管通过查看
重定向
函数签名,看到它发送302个代码可能会让您走上正轨。否则,关于Flask
的API,没有什么比官方更好的了。另一方面,如果您想要更深入的示例,您可以查看显示如何执行许多实际任务的示例。如果您在post请求中发送的数据也需要重定向到其他页面,请确保在新视图的函数中使用“request.form[”“]”访问它,其中属性是您发送的数据的名称,例如“用户名”。很好的建议,谢谢!但我的代码是这样的,端点(url)只接受POST请求。该url可以从外部世界访问,也可以从内部重定向访问。希望您理解我想说的。@ln2khanal我不明白,这只会影响内部重定向,当外界请求时,
/operation
端点的行为仍然相同。什么东西没有按预期工作?