Flask send_file函数详解
Flask 是一个 Python web 应用程序框架,其简单易用的特性使其成为开发 web 应用程序的热门选择。在 Flask 中,send_file 函数是一个非常有用的函数,用于向客户端发送文件。本文将深入探讨 Flask send_file 函数的用法和示例。
send_file函数的基本用法
send_file 函数是 Flask 中的一个工具函数,用于向客户端发送文件。其基本用法如下:
from flask import Flask, send_file
app = Flask(__name)
@app.route('/download')
def download_file():
return send_file('path/to/file.txt', as_attachment=True)
在上述示例中,我们定义了一个路由 ‘/download’,当客户端访问该路由时,会触发 download_file 函数,并发送名为 ‘file.txt’ 的文件给客户端。参数 as_attachment=True 表示以附件形式发送文件,客户端接收到的文件将被下载到本地而不是直接在浏览器中打开。
send_file函数的参数
send_file 函数支持多种参数,用于控制发送文件的行为。下面是一些常用参数的说明:
filename
:要发送的文件的路径或文件对象as_attachment
:是否作为附件下载,默认为 Falseattachment_filename
:发送文件时使用的文件名,可选mimetype
:文件的 MIME 类型add_etags
:是否添加 ETag,默认为 Truecache_timeout
:缓存超时时间,单位为秒conditional
:是否启用条件请求,默认为 True
示例代码
下面我们来看一个更加完整的示例代码,演示如何使用 send_file 函数发送一个图片文件:
from flask import Flask, send_file
app = Flask(__name)
@app.route('/image')
def send_image():
return send_file('path/to/image.jpg', mimetype='image/jpeg')
if __name__ == '__main__':
app.run(debug=True)
在上述代码中,我们定义了一个路由 ‘/image’,当客户端访问该路由时,会触发 send_image 函数,并发送名为 ‘image.jpg’ 的图片文件给客户端。参数 mimetype=’image/jpeg’ 指定了文件的 MIME 类型为 image/jpeg。
运行结果
当我们运行上述示例代码并访问 ‘/image’ 路由时,客户端将收到一个名为 ‘image.jpg’ 的图片文件,并显示在浏览器中。根据客户端的不同,文件可能会被下载到本地,或直接在浏览器中显示。
总结
Flask send_file 函数是一个非常实用的工具函数,可以方便地向客户端发送文件。通过掌握 send_file 函数的用法和参数,我们可以更灵活地控制文件的发送行为,为 web 应用程序开发带来便利。