如何使用django自动下载刚生成的报表或者文件?
个人使用django的ORM模型创建了相关业务数据的数据库,然后利用其简洁的方法来产生报表。那么访问django相关页面,获取到用户的POST请求后,从数据库中读取相对应的数据,然后可以利用xlwt或者一些图形模块在本地生成一个类似报告的文件。
那么如何在django上实现,提交数据之后,自动下载这些生成的报告文件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
http://blog.csdn.net/qq_18863...
这个你可以参考下,这是生成excel文件并传输的代码。只要把POST动作,关联到这段代码,然后就可以实现在post之后,浏览器自动弹出下载提示咯。
post到后台后,首先读取数据库数据,然后按你说的生成报告文件,然后拼一个该文件所在的路径。接下来看下面的代码,就是一段下载用的,前面让文件流传输到服务器,后面是让文件流写入硬盘。(filename是你的文件名,downpath是你拼的文件路径),就酱!!
def file_iterator(file_name, chunk_size=512):
写入硬盘
大概说下我自己的实现方式,首先是获取相关数据之后生成报表文件,然后读取该文件并返回给客户端,代码如下:
方式多种多样
1, 如果你采用的是ajax请求, 可以返回静态文件名字a.xlsx, 把你的报表存放入/static/../ , 前端页面就直接window.open('/static/../a.xlsx) ,就可以进行下载
2, 返回文件流: