首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python Flask API返回CSV内容但不下载文件(Google Chrome)

Python Flask是一个轻量级的Web框架,可以用于构建RESTful API。如果想要在API中返回CSV内容而不下载文件,可以通过设置HTTP响应头来实现。

首先,需要导入Flask和csv模块:

代码语言:txt
复制
from flask import Flask, Response
import csv

然后,创建一个Flask应用程序:

代码语言:txt
复制
app = Flask(__name__)

接下来,定义一个路由来处理API请求,并在该路由中生成CSV内容:

代码语言:txt
复制
@app.route('/api/csv', methods=['GET'])
def get_csv():
    # 创建CSV数据
    data = [
        ['Name', 'Age', 'Email'],
        ['John Doe', '30', 'john@example.com'],
        ['Jane Smith', '25', 'jane@example.com'],
        ['Bob Johnson', '35', 'bob@example.com']
    ]

    # 将数据写入内存中的CSV文件
    csv_output = io.StringIO()
    csv_writer = csv.writer(csv_output)
    csv_writer.writerows(data)

    # 设置HTTP响应头,指定内容类型为CSV
    headers = {
        'Content-Type': 'text/csv',
        'Content-Disposition': 'attachment; filename=data.csv'
    }

    # 返回CSV内容作为响应
    return Response(csv_output.getvalue(), headers=headers)

在上述代码中,我们首先创建了一个包含CSV数据的二维列表。然后,使用io.StringIO()创建一个内存中的文件对象,并使用csv模块的writerows()方法将数据写入该文件对象。接下来,我们设置了HTTP响应头,指定内容类型为CSV,并指定了文件名。最后,使用Response对象将CSV内容作为响应返回。

最后,运行Flask应用程序:

代码语言:txt
复制
if __name__ == '__main__':
    app.run()

这样,当访问/api/csv路由时,API将返回CSV内容而不下载文件。

推荐的腾讯云相关产品:腾讯云云服务器(ECS)、腾讯云对象存储(COS)。

腾讯云云服务器(ECS)产品介绍链接:https://cloud.tencent.com/product/cvm

腾讯云对象存储(COS)产品介绍链接:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分33秒

【Python可视化】Python可视化舆情分析大屏「淄博烧烤」微博热门评论

领券