以最智能的pythonic方式将用户返回烧瓶中的推荐人

时间:2015-10-04 16:14:38

标签: python flask

我想删除一些东西,所以我使用了一个帖子,但后来我想将用户引回到视图中 - 网址实际上因用户而异,所以我希望能够发送回去引用者,但我没有看到一种聪明的方法。

这是我的代码:

@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来执行此操作。

1 个答案:

答案 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)。