Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django上传的文件没有';t过程_Python_Python 3.x_Django_Pandas - Fatal编程技术网

Python Django上传的文件没有';t过程

Python Django上传的文件没有';t过程,python,python-3.x,django,pandas,Python,Python 3.x,Django,Pandas,我正在构建一个Django web应用程序,用户需要在其中上载文件。这个文件应该经过一个机器学习过程,然后结果将显示在不同的页面上 现在,如果每个功能都有文本字段,它就可以工作了,但是当我想上传一个csv文件(csv文件称为test.csv)时,把它放在一个pandas数据框中,结果页不会显示,看起来csv文件没有处理 它应该做的是,如果上传了文件,将上传的文件保存在内存中,处理它并在结果页面上返回输出 HTML {% extends "base.html" %} {% bl

我正在构建一个Django web应用程序,用户需要在其中上载文件。这个文件应该经过一个机器学习过程,然后结果将显示在不同的页面上

现在,如果每个功能都有文本字段,它就可以工作了,但是当我想上传一个csv文件(csv文件称为test.csv)时,把它放在一个pandas数据框中,结果页不会显示,看起来csv文件没有处理

它应该做的是,如果上传了文件,将上传的文件保存在内存中,处理它并在结果页面上返回输出

HTML

{% extends "base.html" %}
{% block content %}
  <div class="content">
    <div class="row">
      <div class="col-lg-4">
        <div class="card card-tasks">
          <h1> </h1>
          <form action="{% url 'result' %}">
            {% csrf_token %}

            <p>temp_normal:</p>
            <input class="form-control" type="text" name="temp_normal">
            <br>

            <p>hour:</p>
            <input class="form-control" type="text" name="hour">
            <br>

            <p>hour_x:</p>
            <input class="form-control" type="text" name="hour_x">
            <br>

            <p>hour_y:</p>
            <input class="form-control" type="text" name="hour_y">
            <br>

            <input class="form-control" type="submit" value='Submit'>
          </form>
        </div>
      </div>
      <div class="col-lg-4">
        <div class="card card-tasks">
          <form action="{% url "result" %}" method="POST" enctype="multipart/form-data" class="form-horizontal">
            {% csrf_token %}
            <div class="form-group">
              <label for="name" class="col-md-3 col-sm-3 col-xs-12 control-label">File: </label>
              <div class="col-md-8">
                  <input type="file" name="csv_file" id="csv_file" required="True" class="form-control">
              </div>
            </div>
            <div class="form-group">
              <div class="col-md-3 col-sm-3 col-xs-12 col-md-offset-3" style="margin-bottom:10px;">
                   <button class="btn btn-primary"> <span class="glyphicon glyphicon-upload" style="margin-right:5px;"></span>Upload </button>
              </div>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
{% endblock content %}
尝试:

尝试:


你需要上传按钮上的
type=“submit”
吗?在我添加了
type=“submit”
之后仍然不起作用。尝试从上下文添加你的表单->
{{form}
而不是html文件输入。你需要上传按钮上的
type=“submit”
吗?在我添加了
type=“submit”之后仍然不起作用
尝试从上下文添加表单->
{{{form}
而不是html文件inputstuff正是由于这段代码。但是我得到一个错误
无效的文件路径或缓冲区对象类型:
我想这是因为熊猫不喜欢这样<代码>\venv\lib\site packages\pandas\io\common.py,第243行,在get_filepath_或_buffer中是的,我想说看起来像pandas错误-需要查看pickled函数中的内容您是指拾取的.sav文件吗?还是别的什么?是的,最初的*模型是pickledstuff,这要归功于这段代码。但是我得到一个错误
无效的文件路径或缓冲区对象类型:
我想这是因为熊猫不喜欢这样<代码>\venv\lib\site packages\pandas\io\common.py,第243行,在get_filepath_或_buffer中是的,我想说看起来像pandas错误-需要查看pickled函数中的内容您是指拾取的.sav文件吗?或者别的什么?是的,原来的模型被腌制了
def handle_uploaded_file(f):
    with open('test.csv', 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)


# custom method for generating predictions
def getPredictions(data):
    import pickle
    model = pickle.load(open("test_model.sav", "rb"))
    prediction = model.predict(data)
    return prediction


@login_required
def result(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            data = form
            data = pd.read_csv(data,header=0)
            result = getPredictions(data)
            return render(request, 'result.html', {'result': result})
    else:
        form = UploadFileForm()
    return render(request, 'index.html', {'form': form})
  <form action="{% url "result" %}" method="POST" enctype="multipart/form-data" class="form-horizontal">
    {% csrf_token %}
    <div class="form-group">
      <label for="name" class="col-md-3 col-sm-3 col-xs-12 control-label">File: </label>
      <div class="col-md-8">
        {{ form }}
      </div>
    </div>
    <div class="form-group">
      <div class="col-md-3 col-sm-3 col-xs-12 col-md-offset-3" style="margin-bottom:10px;">
        <button class="btn btn-primary" type="submit"> <span class="glyphicon glyphicon-upload" style="margin-right:5px;"></span>Upload </button>
      </div>
    </div>
  </form>
@login_required
def result(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            file = request.FILES['file']
            handle_uploaded_file(file)
            data = pd.read_csv(file,header=0)
            result = getPredictions(data)
            return render(request, 'result.html', {'result': result})
    else:
        form = UploadFileForm()
    return render(request, 'index.html', {'form': form})