Чтение загруженного CSV-файла в pandas dataframe - PullRequest
2 голосов
/ 29 апреля 2019

Я загружаю файл 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>


1 Ответ

0 голосов
/ 29 апреля 2019

Поскольку данные отправляются методом 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...