我希望用户能够下载包含sql查询结果的txt文件。我已经看到有关使用send_file
或Response
的答案,但是所有这些答案似乎都要求我存储文件?
目前,我有:
@RateRevisionEndorsements_blueprint.route('/_getEndorsements', methods = ['GET'])
def get_endorsements():
guid = request.args.get('guid')
client = Client()
# Save query results
result = client.getEndorsementFile(bookGuid = guid)
with open('tesult.txt', 'w') as r:
for i in result:
r.write(i)
return send_file("result.txt", as_attachment=True)
生成此路由的按钮有效,并且我没有收到查询结果的问题(当前存储为列表,但是我可以使它达到最佳效果),但是出现错误FileNotFoundError: [Errno 2] No such file or directory: 'C"\\..\\app\\result.txt'
这使我认为我需要将其存储在服务器上的某个位置以进行提取。
答案 0 :(得分:1)
只需将数据作为streaming response发送即可。确保设置正确的mime类型,以便浏览器启动下载。
答案 1 :(得分:0)
正是send_file发送了已存储的文件。 用
发送Respone(file,mimetype=“txt/plain”)