flask—make_response返回静态网页和字典
时间: 2024-10-01 12:10:23 浏览: 35
一分钟搞懂Flask中的Response响应
Flask是一个轻量级的Web应用框架,它允许开发者快速构建网站。`flask.make_response`函数主要用于创建HTTP响应,包括返回静态文件(如HTML、CSS、JavaScript等)以及动态生成的数据。
当你需要返回静态网页(比如HTML模板),可以使用`render_template`函数先渲染HTML模板,然后将结果传递给`make_response`。例如:
```python
from flask import Flask, render_template, send_file, make_response
app = Flask(__name__)
@app.route('/static_page')
def serve_static():
# 渲染HTML模板并获取其内容
rendered_content = render_template('index.html')
# 使用make_response包装静态内容,设置响应头和状态码
response = make_response(rendered_content)
response.headers['Content-Type'] = 'text/html'
return response
```
如果你想返回字典数据作为JSON,可以直接将字典转换成字符串,加上合适的MIME类型,然后使用`jsonify`函数配合`make_response`:
```python
from flask import Flask, jsonify, make_response
app = Flask(__name__)
@app.route('/api/data')
def serve_data():
data_dict = {'key': 'value', 'another_key': 123}
response = make_response(jsonify(data_dict))
response.headers['Content-Type'] = 'application/json'
return response
```
在这个例子中,`jsonify`会自动处理JSON的序列化,而`make_response`则用于设置响应体和相应头部信息。
阅读全文