2014-04-20 2 views
0

Je suis nouveau à Django et nouveau à la programmation web en général. J'essaie d'exporter mes données dans la base de données dans le fichier csv. J'ai essayé « Utilisation de la bibliothèque csv python » dans ce lien: https://docs.djangoproject.com/en/dev/howto/outputting-csv/Où django produit-il le fichier csv?

import csv 
from django.http import HttpResponse 

def some_view(request): 
    # Create the HttpResponse object with the appropriate CSV header. 
    response = HttpResponse(content_type='text/csv') 
    response['Content-Disposition'] = 'attachment; filename="somefilename.csv"' 

    writer = csv.writer(response) 
    writer.writerow(['First row', 'Foo', 'Bar', 'Baz']) 
    writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"]) 

    return response 

Où puis-je trouver le fichier somefilename.csv? Je veux que ce soit dans mon dossier de demande. Donc, tt renvoie l'objet HttpResponse. Ai-je besoin de faire quelque chose pour obtenir le csv?

Répondre

1

En fonction de votre code vous écrivez le CSV à la réponse HTTP, il apparaîtra donc dans le navigateur des utilisateurs. Le fichier n'est jamais créé localement.

Le navigateur du client sait que la réponse doit être enregistrée avec le nom de fichier somefilename.csv puisque c'est l'en-tête que vous envoyez, mais encore une fois, le fichier n'est jamais créé localement sur le serveur.

+0

Oh, d'accord. Ensuite, je suppose que ce n'est pas une façon de faire. Y at-il un moyen pratique de créer csv sur le serveur local? Sinon, je pense que je dois revenir à la requête SELECT OUTFILE INTO. – Rufus