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

如何从部署在Google Cloud Platform的Flask网站下载Excel文件?

Flask Excel文件下载功能实现

1. 修改app.py添加下载路由

在你的app.py中添加以下代码,实现安全的Excel文件下载功能:

from flask import Flask, send_from_directory
import os

app = Flask(__name__)

# 保留你原有的索引、检索路由代码

# 新增下载路由
@app.route('/download/<filename>')
def download_file(filename):
    # 获取当前项目根目录,适配GCP部署环境
    root_dir = os.path.dirname(os.path.abspath(__file__))
    # 白名单限制可下载文件,防止非法访问
    allowed_files = ['file1.xlsx', 'file2.xlsx']
    if filename not in allowed_files:
        return "不允许下载该文件", 403
    return send_from_directory(root_dir, filename, as_attachment=True)

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

代码说明:

  • send_from_directory:Flask官方提供的安全文件传输函数,避免直接暴露文件路径
  • as_attachment=True:强制浏览器触发下载动作,而非在线预览
  • 白名单机制:仅允许下载指定的Excel文件,降低安全风险

2. 在前端页面添加下载入口

修改templates/index.html,在合适位置添加下载按钮/链接:

<!-- 示例:在页面底部添加下载区域 -->
<div class="download-area">
    <h3>Excel文件下载</h3>
    <a href="/download/file1.xlsx" style="padding: 8px 16px; background: #007bff; color: white; text-decoration: none; border-radius: 4px;">下载file1.xlsx</a>
    <a href="/download/file2.xlsx" style="margin-left: 10px; padding: 8px 16px; background: #007bff; color: white; text-decoration: none; border-radius: 4px;">下载file2.xlsx</a>
</div>

你可以根据现有页面的CSS样式调整按钮外观,确保风格统一。

3. 部署验证

将修改后的app.py和index.html重新部署到Google Cloud Platform,访问网站后点击下载按钮,即可获取对应Excel文件。

内容的提问来源于stack exchange,提问作者Omkar Kabde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:49:55