在 flask 上从 'POST' 路由重定向到 'GET' 路由
redirecting on flask from a 'POST' route to a 'GET' route
如果满足某些条件,我想从方法已设置为 'POST' 的路由重定向到另一个 url(方法默认为 'GET' 的路由) . 'GET' 路由在我从终端检查时被调用,但重定向不会从浏览器发生。我正在使用 'url_for' 在烧瓶中执行此操作。有帮助吗?
我试过在 url_for
中使用 _method
参数,即 return redirect(url_for('second', _method='GET')
这是一些代码:
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return redirect(url_for('second', _method='GET'))
session['data_to_use'] = some_data
return jsonify(some_data)
@app.route('/second')
def second():
return render_template('second.html')
这是我在终端上得到的:
"POST /first HTTP/1.1" 302 -
"GET /second HTTP/1.1" 200 -
您确定您的 "some_data" 值为 None 吗?重定向通常只适用于普通的 url_for 用法,即使您是从 post 重定向到 get,像这样:
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return redirect(url_for('second'))
session['data_to_use'] = some_data
return jsonify(some_data)
您可以 return 呈现模板的函数的名称
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return second()
session['data_to_use'] = some_data
return jsonify(some_data)
如果满足某些条件,我想从方法已设置为 'POST' 的路由重定向到另一个 url(方法默认为 'GET' 的路由) . 'GET' 路由在我从终端检查时被调用,但重定向不会从浏览器发生。我正在使用 'url_for' 在烧瓶中执行此操作。有帮助吗?
我试过在 url_for
中使用 _method
参数,即 return redirect(url_for('second', _method='GET')
这是一些代码:
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return redirect(url_for('second', _method='GET'))
session['data_to_use'] = some_data
return jsonify(some_data)
@app.route('/second')
def second():
return render_template('second.html')
这是我在终端上得到的:
"POST /first HTTP/1.1" 302 -
"GET /second HTTP/1.1" 200 -
您确定您的 "some_data" 值为 None 吗?重定向通常只适用于普通的 url_for 用法,即使您是从 post 重定向到 get,像这样:
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return redirect(url_for('second'))
session['data_to_use'] = some_data
return jsonify(some_data)
您可以 return 呈现模板的函数的名称
@app.route('/first', methods=['POST'])
def first():
some_data = request.get_json(force=True)
if some_data is None:
return second()
session['data_to_use'] = some_data
return jsonify(some_data)