我需要在另一个胎面上重定向后请求。但只返回 200 个响应。 但我不知道我该怎么做
我尝试过这样的东西,但没有效果。 bar(( 函数中的 print("重定向!"( 不起作用。
from threading import Thread
from flask import Flask, redirect, Response, url_for
@app.route('/foo', methods=['POST'])
def foo():
t = Thread(
target=redirect,
args = (url_for('bar'), 307)
)
t.start()
t.join()
return Response(status=200)
@app.route('/bar', methods=['POST'])
def bar():
print("Redirected!")
return "Redirected!"
我决定重新发送带有所有内容的请求
import requests
def redirect_thread(**kwargs):
request_funcs = {
'GET': requests.get,
'POST': requests.post,
'DELETE': requests.delete,
'PUT': requests.put
}
try:
request_funcs[request.method](
url=url,
headers=request.headers,
json=request.json,
files=request.files,
params=request.args,
**kwargs
)
except KeyError:
return jsonify({
'error': True,
'message': 'Method Not Allowed'
})
@app.route('/foo', methods=['POST'])
def foo():
t = Thread(
target=redirect_thread(params=request.args),
)
t.start()
t.join()
return Response(status=200)
查看您的代码,我有点不确定为什么您在另一个线程中手动运行重定向,加入该线程并返回结果。您应该只在原始请求上调用"redirect(("并传递上下文,然后上下文将重定向到"/bar"端点,您的Web服务器将处理线程。