Flask如何返回多个文件,不进行打包
时间: 2024-03-06 09:48:41 浏览: 63
Flask只能返回一个文件,如果要返回多个文件,你可以将它们压缩成一个zip文件,或者将它们合并成一个PDF文件,然后将这个文件返回给用户下载。
如果你不想压缩或合并文件,可以考虑将多个文件的下载链接放在一个页面上,用户可以在页面上选择并单独下载它们。
以下是一个示例代码:
```python
import os
from flask import Flask, send_from_directory, render_template
app = Flask(__name__)
# 文件所在目录
file_dir = '/path/to/your/files'
@app.route('/download/<filename>')
def download(filename):
# 返回文件给用户下载
return send_from_directory(file_dir, filename, as_attachment=True)
@app.route('/')
def index():
# 获取文件列表
file_list = os.listdir(file_dir)
# 渲染模板并返回给用户
return render_template('file_list.html', file_list=file_list)
if __name__ == '__main__':
app.run()
```
在这个示例中,我们定义了两个路由,一个用于下载单个文件,一个用于显示文件列表。文件列表使用Flask模板渲染生成,用户可以在页面上选择并单独下载文件。
阅读全文