Flask 关于响应

视图函数的返回值会被自动转换为一个响应对象。如果返回值是一个字符串,
它被转换为该字符串为主体的、状态码为 200 OK“的 MIME 类型是
“text/html 的响应对象。Flask 把返回值转换为响应对象的逻辑是这样:

  1. 如果返回的是一个合法的响应对象,它会从视图直接返回。
  2. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。
  3. 如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的
    元组必须是 (response, status, headers) 的形式,且至少包含一
    个元素。 status 值会覆盖状态代码, headers 可以是一个列表或
    字典,作为额外的消息标头值。
  4. 如果上述条件均不满足, Flask 会假设返回值是一个合法的 WSGI 应用
    程序,并转换为一个请求对象。

如果你想在视图里操纵上述步骤结果的响应对象,可以使用
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

作者:冒牌SEO,如若转载,请注明出处:https://www.web176.com/flask2/21765.html

(0)
打赏 支付宝 支付宝 微信 微信
冒牌SEO冒牌SEO
上一篇 2023年5月18日
下一篇 2023年5月18日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注