You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask调用指定URL下载Excel并保存至项目downloads文件夹求助

解决Flask中下载Excel文件到指定文件夹的问题

嘿,我来帮你搞定这个文件保存的问题!你已经用requests.get拿到了文件的请求响应,接下来只需要把响应的二进制内容写入到downloads文件夹里就行,而且最好先确保这个文件夹存在,避免报错。

下面是完整的代码示例,你可以直接放到main.py里:

import requests
import os
from flask import Flask

app = Flask(__name__)

@app.route('/download-excel')
def download_excel():
    # 目标Excel文件的URL
    excel_url = 'http://www.bocsar.nsw.gov.au/Documents/RCS-Annual/bluemountainslga.xlsx'
    
    # 构建保存路径:基于Flask项目根目录的downloads文件夹
    save_directory = os.path.join(app.root_path, 'downloads')
    # 确保downloads文件夹存在,不存在则自动创建
    os.makedirs(save_directory, exist_ok=True)
    
    # 拼接完整的文件保存路径,保留原文件名
    file_path = os.path.join(save_directory, 'bluemountainslga.xlsx')
    
    # 发送请求获取文件
    response = requests.get(excel_url)
    
    # 检查请求是否成功
    if response.status_code == 200:
        # 以二进制写入模式保存文件
        with open(file_path, 'wb') as file:
            file.write(response.content)
        return "Excel文件已成功保存到项目的downloads文件夹中!"
    else:
        return f"下载失败,HTTP状态码:{response.status_code}"

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

关键细节说明:

  • 使用app.root_path来获取Flask项目的根目录,这样不管你的项目部署在什么位置,路径都是正确的,不用硬写绝对路径
  • os.makedirs(save_directory, exist_ok=True)会自动创建downloads文件夹,如果文件夹已经存在也不会报错
  • 用wb(二进制写入)模式打开文件,因为Excel是二进制格式的文件,必须用这种模式才能正确保存
  • 先检查响应的状态码是否为200,确保请求成功后再写入文件,避免保存无效的内容

运行这个Flask应用后,访问http://localhost:5000/download-excel就能触发下载并保存文件到指定的downloads文件夹啦!

内容的提问来源于stack exchange,提问作者Tim B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:05:19