Flask响应请求有以下几种方法:
- render_template 返回模板文件
- jsonify 返回json格式的数据
- Response 自定义返回的数据及类型
当服务端需要返回图片或者各种格式的文件时,就需要使用Response进行自定义返回.
例如当用户请求服务器并传递图片id时,返回给用户的是一张图片,就需要使用Response返回数据,示例如下:
# encoding:utf8
__author__ = 'brianyang'
from flask import Response, Flask
app = Flask(__name__)
@app.route("/image/<imageid>")
def index(imageid):
image = file("丽江/{}.jpg".format(imageid))
resp = Response(image, mimetype="image/jpeg")
return resp
from flask import render_template, jsonify
app.run(debug=True)
启动服务,当用户访问http://127.0.0.1:5000/image/1 时,会返回服务器根目录中/image/1.jpg这张图片.
HTTP响应报文
Connection:close
Content-Type:image/jpeg
Date:Thu, 24 Mar 2016 06:21:35 GMT
Server:Werkzeug/0.10.4 Python/2.7.8
返回的类型为image/jpeg
定义mimetype可以支持返回多种类型的文件,请参考MIME类型列表.
网友评论