响应对象
Flask中的响应对象用于返回给客户端的数据。响应对象可以是字符串、JSON、HTML页面、文件等。我们可以从Flask中导入'response'模块来创建响应对象。响应对象包含的常见方法和属性如下:
- make_response(content):创建响应对象,其中'content'为响应内容。
- set_cookie(key, value, **options):设置cookie。
- delete_cookie(key, **options):删除cookie。
- headers:响应头字典,包含所有HTTP头信息。
- status_code:HTTP状态码。
- content_type:响应类型。
下面是一个使用响应对象返回JSON数据的示例代码:
代码语言:javascript复制from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/users')
def users():
users = [
{'id': 1, 'name': 'Alice', 'age': 20},
{'id': 2, 'name': 'Bob', 'age': 30},
{'id': 3, 'name': 'Charlie', 'age': 40}
]
return jsonify(users)
if __name__ == '__main__':
app.run()
在上面的示例中,我们使用'jsonify'函数将Python对象转换为JSON字符串,并使用响应对象返回JSON数据。
使用响应对象返回HTML页面的示例代码如下:
代码语言:javascript复制from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
html = '''
<html>
<head>
<title>Hello Flask</title>
</head>
<body>
<h1>Hello Flask!</h1>
</body>
</html>
'''
response = make_response(html)
response.headers['Content-Type'] = 'text/html'
return response
if __name__ == '__main__':
app.run()
在上面的示例中,我们使用'make_response'函数创建响应对象,并将HTML字符串作为响应内容。我们还使用响应对象的'headers'属性设置响应类型为'text/html'。
设置cookie的示例代码如下:
代码语言:javascript复制from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
response = make_response('Hello Flask!')
response.set_cookie('username', 'alice')
return response
if __name__ == '__main__':
app.run()
在上面的示例中,我们使用响应对象的'set_cookie'方法设置cookie。第一个参数是cookie的键,第二个参数是cookie的值。其他可选参数可以用于设置cookie的属性,例如过期时间、域名、路径等。
删除cookie的示例代码如下:
代码语言:javascript复制from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
response = make_response('Hello Flask!')
response.delete_cookie('username')
return response
if __name__ == '__main__':
app.run()
在上面的示例中,我们使用响应对象的'delete_cookie'方法删除名为'username'的cookie。