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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage