2009-08-26 81 views
0

我嘗試將csv文件上傳到我的web應用程序中,並將其存儲到mysql數據庫中,但失敗。請任何人都可以幫助我?使用django web應用程序將csv文件導入到mysql數據庫

我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) 

我forms.py腳本:

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

你究竟是如何失敗的?你沒有提供足夠的信息。 – shanyu 2009-08-26 02:47:16

+0

我使用Ubuntu的linux.so當我提交csv文件上傳,在終端將打印我選擇的文件的名稱,但它沒有加載到我的網頁或保存到mysql – 2009-08-26 04:44:40

+0

你確定你的表單元素在模板中屬性: enctype =「multipart/form-data」 – 2009-08-26 04:57:14

回答

1

既然你沒有爲getcsv功能提供的代碼,我會用我的水晶球在這裏一點。

for row in testReader:循環中的打印不工作的一個原因是getcsv可能已經處理該文件。使用the seek method將文件中的對象位置重新設置爲零。這樣for循環會正確處理它。

數據庫中沒有任何內容存儲的另一個原因可能是您提供的代碼中似乎沒有對model的引用。那麼Django應該如何知道應該存儲什麼以及在哪裏?

相關問題