响应对象Response

Posted 南枝向暖北枝寒MA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了响应对象Response相关的知识,希望对你有一定的参考价值。

问题:视图函数的 return 和 普通函数的 return 有什么区别。

视图函数会返回状态码(status)、content-type(放置在http请求的headers中)。content-type 还会告诉 http 请求的接收方如何解析返回的主体内容。Flask 中 content-type 默认是 text/html

视图函数返回的内容永远是 Response 对象。返回对象的写法有两种方式。

方式一:make_response

举例一:

from flask import Flask, make_response

app = Flask(__name__)
# 载入整个配置文件
app.config.from_object('config')  # from_object需要接收模块的路径


def hello():
    headers = {
        'content-type': 'text/plain'
    }
    content = '<html></html>'
    response = make_response(content, 201)
    response.headers = headers
    return response


app.add_url_rule('/hello/', view_func=hello)
if __name__ == '__main__':
    # 生产环境 nginx + uwsgi服务器
    # 访问配置参数 因为app.config是dict的子类
    app.run(debug=app.config['DEBUG'], host='0.0.0.0', port=8800)

举例二:重定向

from flask import Flask, make_response

app = Flask(__name__)
# 载入整个配置文件
app.config.from_object('config')  # from_object需要接收模块的路径


def hello():
    headers = {
        'content-type': 'text/plain',
        'location': 'http://www.baidu.com'
    }
    content = '<html></html>'
    response = make_response(content, 301)
    response.headers = headers
    return response


app.add_url_rule('/hello/', view_func=hello)
if __name__ == '__main__':
    # 生产环境 nginx + uwsgi服务器
    # 访问配置参数 因为app.config是dict的子类
    app.run(debug=app.config['DEBUG'], host='0.0.0.0', port=8800)

方式二:逗号分隔返回

from flask import Flask, make_response

app = Flask(__name__)
# 载入整个配置文件
app.config.from_object('config')  # from_object需要接收模块的路径


def hello():
    headers = {
        'content-type': 'text/plain',
        'location': 'http://www.baidu.com'
    }
    return '<html></html>', 301, headers


app.add_url_rule('/hello/', view_func=hello)
if __name__ == '__main__':
    # 生产环境 nginx + uwsgi服务器
    # 访问配置参数 因为app.config是dict的子类
    app.run(debug=app.config['DEBUG'], host='0.0.0.0', port=8800)

以上是关于响应对象Response的主要内容,如果未能解决你的问题,请参考以下文章

“response”对象设置响应头属性方法是啥?

如何从片段中的 JSON 响应中的对象获取数据

response (响应对象)

重温Servlet学习笔记--response对象

flask基础之Response响应对象

Flask 学习-7. make_response() 自定义响应内容