Flask + Python中如何实现php中的header('Refresh: 1;url=destination')?
在PHP中,有一个功能
header('Refresh: 1;url=destination');
它可以把用户重定向到一个指定的URL。而且这个功能必须在其他任何操作之前调用,但我可以在那行之后显示其他内容。
而在我正在练习的Flask + Python中,有一个功能
return redirect(destination, code=301)
它也可以进行重定向,但不能像PHP那样在重定向后再显示其他内容。
如果我没记错的话,这两个功能都会发送一个头信息,告诉用户去另一个地方,但它们的表现方式不同:在第一个情况下,它是在提供响应的时候发送的;而在第二个情况下,它就是响应本身。
我希望在Flask中能有和PHP一样的功能,但看完文档后,我觉得没有办法同时发送重定向和一些内容。
1 个回答
4
所有的 header()
函数做的就是给响应添加一个 HTTP 头信息。在 Flask 中你也可以做到这一点。
你可以返回一个包含 (body, status, headers)
的元组,或者返回一个 flask.Response()
对象。具体可以查看快速入门中的 关于响应 部分。
下面是一个包含主体、状态和头信息的元组示例:
body = render_template('sometemplate', somevar=somevalue)
return (body, 200, {'Refresh': '1;url=destination'})
在这里,第二个元素设置了一个 200 状态码(表示成功),第三个元素是一个字典,用来指定 Refresh
头信息。