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

     

posted @ 2020-12-31 18:46  eliwang  阅读(169)  评论(0编辑  收藏  举报