文件下載

有本地文件 

放到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做用是後臺生成一部分數據,前臺下載一部分,不是等到所有傳輸完再進行下載,減小耗時javascript

@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

 

 

生成excel並下載

@api.route('/test3')
def test3():
    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    ws['A1'] = 42 
    ws['B1'] = "你\n好" + "automation test"
    file_name = 'test.xlsx'
    wb.save(file_name)
    directory = ''
    response = make_response(send_from_directory(directory, file_name, as_attachment=True))
    response.headers["Content-Disposition"] = "attachment; filename={}".format(file_name)
    return response
window.open(PreURL+'test3')
//window.open寫在連接中的參數後臺用get方法就能取到

 

 

 

經常使用mimetype

  • text/html(默認的,html文件)css

  • text/plain(純文本)html

  • text/css(css文件)java

  • text/javascript(js文件)nginx

  • application/x-www-form-urlencoded(普通的表單提交)json

  • multipart/form-data(文件提交)flask

  • application/json(json傳輸)api

  • application/xml(xml文件)app

 

 

 

參考

Flask 文件和流post

相關文章
相關標籤/搜索