为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用django自动下载刚生成的报表或者文件?

如何使用django自动下载刚生成的报表或者文件?

慕的地6264312 2018-07-15 23:44:45
个人使用django的ORM模型创建了相关业务数据的数据库,然后利用其简洁的方法来产生报表。那么访问django相关页面,获取到用户的POST请求后,从数据库中读取相对应的数据,然后可以利用xlwt或者一些图形模块在本地生成一个类似报告的文件。那么如何在django上实现,提交数据之后,自动下载这些生成的报告文件?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超12个赞

方式多种多样
1, 如果你采用的是ajax请求, 可以返回静态文件名字a.xlsx, 把你的报表存放入/static/../ , 前端页面就直接window.open('/static/../a.xlsx) ,就可以进行下载

2, 返回文件流:

from django.http import StreamingHttpResponse

def big_file_download(request):

    def file_iterator(file_name, chunk_size=512):

        with open(file_name) as f:

            while True:

                c = f.read(chunk_size)

                if c:

                    yield c

                else:

                    break


    the_file_name = "file_name.txt"

    response = StreamingHttpResponse(file_iterator(the_file_name))

    return response


查看完整回答
反对 回复 2018-07-20
  • 3 回答
  • 0 关注
  • 1879 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信