Flask send_file返回文件

Flask send_file返回文件

Flask send_file返回文件

在使用 Flask 开发Web应用程序时,有时候我们需要从服务器端向客户端返回文件。Flask提供了send_file方法来实现这一功能。本文将详细介绍如何使用send_file方法返回文件。

send_file方法的基本用法

在Flask中,send_file方法用于向客户端返回文件。其基本用法如下:

from flask import Flask, send_file

app = Flask(__name)

@app.route('/download')
def download_file():
    return send_file('path/to/your/file.txt')

以上代码中,当用户访问/download路径时,会返回file.txt文件给客户端。需要注意的是,send_file方法默认会将文件作为附件下载,如果需要在浏览器内直接显示文件内容,可以设置as_attachment=False

@app.route('/view')
def view_file():
    return send_file('path/to/your/file.txt', as_attachment=False)

返回文件的其他参数设置

除了基本用法外,send_file方法还支持一些其他参数设置,以适应不同的需求。

  • attachment_filename:设置返回文件的文件名,若不设置则默认为文件本身的文件名。
  • mimetype:设置返回文件的MIME类型,可以根据不同类型的文件设置不同的MIME类型。
  • last_modified:设置文件的最后修改时间,当客户端缓存有此文件时会使用此时间来验证是否需要重新下载文件。
@app.route('/download')
def download_file():
    return send_file('path/to/your/file.txt', 
                     attachment_filename='new_file_name.txt', 
                     mimetype='text/plain',
                     last_modified=1234567890)

完整示例

下面给出一个完整的示例代码,演示如何使用send_file方法返回文件。

from flask import Flask, send_file

app = Flask(__name)

@app.route('/download')
def download_file():
    return send_file('data/sample.pdf', 
                     attachment_filename='new_file_name.pdf', 
                     mimetype='application/pdf', 
                     as_attachment=True)

if __name__ == '__main__':
    app.run()

在上面的示例中,用户访问/download路径时会返回sample.pdf文件给客户端,并设置文件名为new_file_name.pdf,MIME类型为application/pdf

运行结果

当用户访问/download路径时,浏览器会下载sample.pdf文件,文件名为new_file_name.pdf,MIME类型为application/pdf

总结

send_file方法是Flask中用于返回文件的重要方法,可以方便地将文件发送给客户端。通过设置适当的参数,可以根据具体需求返回不同类型的文件,并控制文件的附件下载或内联显示。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程