2009-08-26 6 views
0

j'essaie de télécharger un fichier csv dans mon application web et le stocker dans la base de données mysql mais échoué.S'il vous plaît quelqu'un peut-il m'aider?importer le fichier csv dans la base de données mysql en utilisant l'application web django

mon script user.py:

def import_contact(request): 
if request.method == 'POST': 
    form = UploadContactForm(request.POST, request.FILES) 
    if form.is_valid(): 
     csvfile = request.FILES['file'] 
     print csvfile 

     csvfile.read() 
        testReader = csv.reader(csvfile,delimiter=' ', quotechar='|') 




     for row in testReader: 
      print "|".join(row) 
    return HttpResponseRedirect('/admin') 

else: 
    form = UploadContactForm() 

vars = RequestContext(request, { 'form': form }) 
return render_to_response('admin/import_contact.html', vars) 

mon script forms.py:

class UploadContactForm(forms.Form): 
file = forms.FileField(label='File:', error_messages = {'required': 'File required'}) 
+3

Comment avez-vous échoué exactement? Vous n'avez pas fourni suffisamment d'informations. – shanyu

+0

J'utilise ubuntu linux.so quand je soumets le fichier csv à télécharger, dans le terminal j'imprime le nom du fichier que je choisis mais il ne se charge pas dans mon site web ou n'enregistre pas dans mysql –

+0

Avez-vous vérifié que votre élément de formulaire dans le modèle l'attribut: enctype = "multipart/form-data" –

Répondre

1

Puisque vous n'avez pas fourni le code de la fonction getcsv, je vais utiliser mon boule de cristal ici un peu.

Une raison pour laquelle l'impression dans la boucle for row in testReader: ne fonctionne pas est que getcsv peut déjà traiter le fichier. Utilisez the seek method pour remettre à zéro la position des objets dans le fichier. De cette façon, la boucle for le traitera correctement.

Une autre raison pour laquelle il n'y a rien stocké dans la base de données peut être que le code que vous avez fourni ne semble pas faire référence à un model. Alors, comment Django devrait-il savoir ce qu'il devrait stocker et où?

Questions connexes