【问题标题】:Flask: how can a client download a created JSON fileFlask:客户端如何下载创建的 JSON 文件
【发布时间】:2014-10-19 21:10:09
【问题描述】:

我有一个从 Web 表单中读取的 JSON 字符串,我想从中创建一个临时文件并允许将文件下载到本地客户端计算机。换句话说,我的 app.route 读取字符串,将字符串写入文件,然后将文件发送给客户端:

@app.route('/sendFile', methods=['POST'])
def sendFile():
    content = str(request.form['jsonval'])
    with open('zones.geojson', 'w') as f:
        f.write(content)
    return send_file(f)

完成这项工作的最佳方法是什么?

【问题讨论】:

  • 如果是临时文件,为什么需要写入文件?假设提交表单,并且它到达了您的路线,我认为您可以只打印 json 并设置 HTTP 标头来下载文件而不是显示它。我认为Content-Disposition 标头?
  • 这是一个例子(虽然它使用 PHP):stackoverflow.com/questions/11545661/php-force-download-json
  • 确实可以,感谢您让我走上正轨。

标签: json flask


【解决方案1】:

来自this 的回答只需要指定正确的响应头:

From flask import Response

@app.route('/sendFile', methods=['POST'])
def sendFile():
    content = str(request.form['jsonval'])
    return Response(content, 
            mimetype='application/json',
            headers={'Content-Disposition':'attachment;filename=zones.geojson'})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2021-05-23
    • 2017-08-06
    • 2013-06-26
    相关资源
    最近更新 更多