通过Django生成多个CSV文件,将其压缩并下载

时间:2012-01-03 00:16:46

标签: django csv download zip

作为一种观点,我可以生成一个CSV文件并将其返回给浏览器进行下载。由于CSV文件不支持多个工作表,我想生成几个CSV文件并将其打包为可下载的zip文件。

以下是CSV文件视图:

def user_csv_pull(request):        
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; filename=user_list.csv'

    user_list = User.objects.order_by('-date_joined')

    t = loader.get_template('reporting/user_list.csv')
    c = Context({'user_list': user_list,})

    response.write(t.render(c))

    return response

我需要扩展它,以支持我想要生成的4或5个其他csv文件,但假设我已经弄明白了...如何将其推入拉链?我是否需要将CSV文件写入磁盘然后压缩它们?我在这里发布了其他使用SockIO的问题,这似乎是我可以在这里使用的。

1 个答案:

答案 0 :(得分:0)

使用zipfile module可能是创建zip文件的最佳选择。