J'ai une vue qui prend des données de mon site, puis le transforme en un fichier compressé compressé. Voici mon code de travail sans zip:Je n'arrive pas à créer un fichier CSV dans un fichier ZIP dans django
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
et cela fonctionne très bien. Maintenant, je veux que ce fichier soit compressé avant d'être envoyé. C'est là que je suis coincé.
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
Mais ce n'est pas ça et je n'ai aucune idée de comment faire cela.
Oui, cela fonctionnera (si la sortie non compressée s'intègre bien dans la mémoire, sinon, considérez un fichier temporaire sur le disque). –