我正在上传 CSV 文件并希望将其加载到 Pandas 数据框中。将文件加载到我的视图中时出现问题。警告消息被发送到模板,表明文件没有被发送到视图。
这是我的观点:
def showReadUploadedView(request, **kwargs):
context = {}
test_file = request.GET.get(u'testFile')
df = pd.read_csv(test_file)
context = {'df': df}
if not test_file:
messages.warning(request, f'No file to process! Please upload a file to process.')
return render(request, 'tasks/up_load.html', context)
这是我的模板:
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" class="form-control-file mt-1 mb-1" id="testFile">
<button class="btn btn-danger btn-sm mb-3 mt-1" type="submit">Process this</button>
<a href="{% url 'upload-task' task.id %}" class="btn btn-danger btn-sm mb-3 mt-1">Process Data</
</form>
由于数据是通过 POST 方法(如您的表单中定义的)发送的,因此request.GET
. 然而,由于它是一个文件输入,它也不会在request.POST
其中。Django 专门处理文件并将它们放入request.FILES
.
def showReadUploadedView(request, **kwargs):
context = {}
if request.method == 'POST':
test_file = request.FILES.get(u'testFile')
if test_file:
df = pd.read_csv(test_file)
context['df'] = df
else:
messages.warning(request, f'No file to process! Please upload a file to process.')
return render(request, 'tasks/up_load.html', context)
https://docs.djangoproject.com/en/2.2/topics/http/file-uploads/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句