强制Flask返回HTTP版本作为响应

时间:2018-03-25 17:21:47

标签: python http flask http-headers

我在特定设备上遇到问题(iPhone SE,iOS 9.3.5)。阅读其他SO post,似乎safari认为Web服务器正在使用HTTP / 0.9,并且可以通过在响应中包含HTTP版本来解决该问题。如果重要的话,我正在使用模板。

我试过这个:

@downloader.route('/')
def home():
    return render_template('home.html', name=get_guest_name()), "HTTP/1.1 200 OK", {"Content-Type": "text/html"}

但这似乎不起作用。桌面浏览器和其他移动设备工作正常。

1 个答案:

答案 0 :(得分:2)

您希望将render_template()结果(str)包裹在Response using make_response()中,附加所需的标题,例如沿着这些方向:

@downloader.route('/')
def home():
    resp = make_response(render_template('home.html', name=get_guest_name()))
    resp.headers['Content-Type'] = 'text/html'
    return resp

您可以将其设置为装饰器,以便轻松重复使用。