Verwirrt darüber, eine CSV-Datei in eine ZIP-Datei in Django zu verwandeln
Ich habe eine Ansicht, die Daten von meiner Site entnimmt und sie dann in eine komprimierte csv-Zip-Datei umwandelt. Hier ist mein Arbeitscode ohne Zip:
def backup_to_csv(request):
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=backup.csv'
writer = csv.writer(response, dialect='excel')
#code for writing csv file go here...
return response
und es funktioniert super. Jetzt möchte ich, dass diese Datei komprimiert wird, bevor sie gesendet wird. Hier stecke ich fest.
def backup_to_csv(request):
output = StringIO.StringIO() ## temp output file
writer = csv.writer(output, dialect='excel')
#code for writing csv file go here...
response = HttpResponse(mimetype='application/zip')
response['Content-Disposition'] = 'attachment; filename=backup.csv.zip'
z = zipfile.ZipFile(response,'w') ## write zip to response
z.writestr("filename.csv", output) ## write csv file to zip
return response
Aber das ist es nicht und ich habe keine Ahnung, wie ich das machen soll.