视图函数的返回值,Flask 会自动转换成响应对象。
如果视图返回字符串:自动生成主体为该字符串、状态码 200 OK、MIME类型 text/html 的响应对象。
Flask 转换返回值为响应对象的判断逻辑:
- 若返回合法响应对象,直接返回
- 若返回字符串 ,使用字符串和默认参数创建响应对象
- 若返回元组:格式
(response, status, headers),至少包含第一项;status覆盖状态码,headers支持列表/字典,用于追加响应头 - 以上都不满足, Flask 将返回值视作合法WSGI应用,转换为响应对象
make_response() 函数
作用:手动构建响应对象,方便自定义修改响应头、状态码。
使用方式:将返回表达式传入 make_response(),得到响应对象,修改属性后return。
示例
方式1:直接返回元组(简易写法)
@app.errorhandler(404)
def not_found(error):
return render_template('error.html'), 404Code language: JavaScript (javascript)
方式2:使用 make_response() 自定义响应头(灵活写法)
from flask import make_response, render_template
@app.errorhandler(404)
def not_found(error):
resp = make_response(render_template('error.html'), 404)
# 自定义响应头
resp.headers['X-Something'] = 'A value'
return respCode language: PHP (php)
Previous: 重定向和错误提示页
Next: Session 会话