我想删除一些东西,所以我使用了一个帖子,但后来我想将用户引回到视图中 - 网址实际上因用户而异,所以我希望能够发送回去引用者,但我没有看到一种聪明的方法。
这是我的代码:
@app.route('/delete', methods=['POST'])
def delete():
if request.method == 'POST':
_id = request.form.get('_id')
mongo.db.xxx.remove({'_id': _id})
return request.referrer
else:
return request.referrer
这样做的规范优雅方式是什么?我是否必须使用会话,或者是否有其他方法可以使用flask来执行此操作。
答案 0 :(得分:2)
在渲染删除视图的表单时,您可以添加名为next
的隐藏表单元素:
<form ...>
<input type="hidden" name="next" value="{{ request.path }}">
...
</form>
然后在你的路线中:
...
return redirect(request.form.get('next', '/'))
注意:您的重定向处理应注意防止下一个参数成为任意网站的绝对URL(请参阅https://www.owasp.org/index.php/Open_redirect)。