Flask-认识response对象
1.response
- 视图函数的返回值会被自动转换为一个响应对象。如果返回值是一个字符串,它被转换为该字符串为主体的、状态码为‘200 ok’的、MIME类型是'text/html'的响应对象。
2.Flask是如何把返回值转换为响应对象的?
- 1.如果返回的是一个合法的响应对象,它会从视图直接返回。
- 2.如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。
- 3.如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的元组必须是(response, status, headers)的形式,且至少包含一个元素。status值会覆盖状态代码, headers可以是一个列表如[(key1,value1),...]或字典["key1":"value1",...],作为额外的消息标头值。
- 4.如果果上述条件均不满足, Flask 会假设返回值是一个合法的 WSGI 应用程序,并转换为一个请求对象。
3.make_response()函数:
- 如果你想在视图里操纵上述步骤结果的响应对象,可以使用make_response()函数。
- 比如你有这样一个视图:
@app.errorhandler(404) def not_found(error): return render_template('error.html'), 404
- 使用make_response()函数获取结果对象并修改,然后再返回:
@app.errorhandler(404) def not_found(error): resp = make_response(render_template('error.html'), 404) resp.headers['X-Something'] = 'A value' return resp