• 文件下载


    有本地文件 

    放到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) + '
    '
    
        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'] = "你
    好" + "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文件)

    • text/plain(纯文本)

    • text/css(css文件)

    • text/javascript(js文件)

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

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

    • application/json(json传输)

    • application/xml(xml文件)

    参考

    Flask 文件和流

  • 相关阅读:
    Centos 7安装配置NTP网络时间同步服务器
    Git忽略提交规则 .gitignore配置运维总结
    linux scp放后台执行方法
    《Linux Kernel Development》读书笔记PDF下载(2012.5.7最后更新)
    D4整体架构差不多快出来了
    c#实现IOleCommandTarget接口(原闯)
    centos7一键安装samba服务器
    R语言绘图高质量输出
    R语言与数据分析
    R语言Cairo包的使用
  • 原文地址:https://www.cnblogs.com/lurenjia1994/p/9958090.html
Copyright © 2020-2023  润新知