1. 程式人生 > >檔案下載 Flask 檔案和流

檔案下載 Flask 檔案和流

有本地檔案 

放到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 in
range(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

 

 

 

參考

Flask 檔案和流