在线程中重定向烧瓶请求



我需要在另一个胎面上重定向后请求。但只返回 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服务器将处理线程。

最新更新