Flask Response vs Flask make_response

ett*_*any 3 python flask

我知道这Response是Flask默认使用的http响应.对于特定的响应格式,我通常使用make_response.是否有任何具体情况我们必须使用flask.Response而不是flask.make_response?换句话说,是否flask.make_response适用于所有情况,或者有时flask.Response是唯一或更好的选择?谢谢!

Mar*_*ers 20

make_response()为您提供了一个方便的界面,它将采用比flask.Response()对象更多格式的参数.

此外,make_response()使用Flask.response_class属性(so app.response_class)来构建响应.is 的默认值,但您可以将此值设置为子类.Flask.response_classflask.Response

所以你应该总是使用make_response(),而不是flask.Response()直接使用,特别是如果你想支持交换Response你实际用于响应的类.

可能需要使用app.response_class,如果它是一个子类,它采用的是直接的参数make_response()不能提供.

  • @ettanany:嗯,“Response()”采用特定的参数,所有这些参数“make_response()”通常都可以提供。但是,如果您创建了一个需要更多参数的子类,那么“make_response()”将不会知道这些参数。这就是直接使用该类的原因,这是我在这里能想到的唯一原因。 (2认同)