2009-08-26 48 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应该如何知道应该存储什么以及在哪里?

相关问题