django 1.5如何从内存中读取csv
我试图找出如何读取上传的CSV而不保存到磁盘 我被表单卡住了。清理了数据['file']。读取。。。我似乎没有得到任何输出 如果我只知道如何获得输出,那么我就可以编写一个适当的函数来处理数据行django 1.5如何从内存中读取csv,django,file-upload,csv,Django,File Upload,Csv,我试图找出如何读取上传的CSV而不保存到磁盘 我被表单卡住了。清理了数据['file']。读取。。。我似乎没有得到任何输出 如果我只知道如何获得输出,那么我就可以编写一个适当的函数来处理数据行 #addreport.html <form enctype="multipart/form-data" method="post" action="/products/addreport/"> {%csrf_token %} <table> {{ form.as_table }
#addreport.html
<form enctype="multipart/form-data" method="post" action="/products/addreport/"> {%csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
--
你能试试吗
import csv
#In your view
line_reader = csv.reader(form.cleaned_data['file'])
for row in line_reader:
#do something with each row.
对于我的一个项目,我有非常相似的设置。你的表格里有什么干净的方法吗 否则,我认为您可以从
form.cleaned_data['file']
读取文件,很好:
import csv
def addreport(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
reader = csv.reader(form.cleaned_data['file'])
for row in reader:
print row
else:
print form.errors
print request.FILES
#form = UploadFileForm()
else:
form = UploadFileForm()
return render(request, 'products/addreport.html', {'form': form})
如果不起作用,请尝试直接使用request.FILES['file']
而不是form.cleaned\u data['file']
希望有帮助。csv模块不是可调用的。我假设您仍在本地主机上进行测试?您应该能够在终端中看到一些东西(打印行的结果)。我实际上在OpenShifthm上进行测试,我认为您当时看不到终端输出。您希望如何处理csv的输出?问题是,我没有意识到Django不会输出原始输出,除非它是HTTP响应。在python 3.5上,Was getting
迭代器应该返回字符串,而不是字节。解决方案
import csv
#In your view
line_reader = csv.reader(form.cleaned_data['file'])
for row in line_reader:
#do something with each row.
import csv
def addreport(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
reader = csv.reader(form.cleaned_data['file'])
for row in reader:
print row
else:
print form.errors
print request.FILES
#form = UploadFileForm()
else:
form = UploadFileForm()
return render(request, 'products/addreport.html', {'form': form})