檔案下載 Flask 檔案和流
阿新 • • 發佈:2018-11-14
有本地檔案
放到nginx跟目錄下,通過訪問nginx下載:略
flask返回檔案
@api.route('/file/down') def excel_down(): directory = r'D:/' filename = 'www.rar' file_name = '測試.rar' response = make_response(send_from_directory(directory, filename, as_attachment=True)) response.headers["Content-Disposition"] = "attachment; filename={}".format(file_name) return response
沒有本地檔案
通過設定response的型別下載
yield作用是後臺生成一部分資料,前臺下載一部分,不是等到全部傳輸完再進行下載,減少耗時
@api.route('/stream/down') def stream_down(): def generate(): for row in range(50000): line = [] for col inrange(500): line.append(str(col)) if row % 1000 == 0: print 'row: %d' % row yield ','.join(line) + '\n' response = Response(generate(), mimetype='text/csv') response.headers["Content-Disposition"] = "attachment; filename={}".format('大檔案.csv') return response