Это дополнительный вопрос от здесь: там я научился загружать файл, обрабатывать его, а затем снова заполнять сайт его содержимым, используя AJAX
и FormData
. Например, если у меня есть такой файл data.csv
:
A,B,C
1,3,4
2,4,2
Я могу передать это, используя AJAX
и FormData
<form method="POST" enctype="multipart/form-data" id="fileUploadForm">
<div class="custom-file">
<input id="myfile" name="myfile" type="file" class="custom-file-input">
<label for="myfile" class="custom-file-label">
Choose file...
</label>
</div>
</form>
// the javascript part
var form = $('#fileUploadForm')[0];
var formdata = new FormData(form);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/_get_table",
data: formdata,
processData: false,
contentType: false,
cache: false,
timeout: 600000,
и получить:
Затем я могу легко получить это, используя
file = request.files['myfile']
и преобразовать его в кадр данных, используя
df = pd.read_csv(file)
Теперь у меня вопрос, как мне это сделать, если я хочу передать дополнительные параметры (не только файл). Здесь предлагается использовать
var formdata = new FormData();
formdata.append("myform", form)
formdata.append("myvalue", 10)
который дает
и headers
Как мне теперь правильно собирать информацию? Я могу получить myvalue
вот так
val = request.form['myvalue']
но я не нашел способ получить доступ и прочитать myfile
. Если я, например. пытаться
file = request.files['myform']
я получил
werkzeug.exceptions.HTTPException.wrap..newcls: 400 Неверный запрос: KeyError: 'myform'
Я также пробовал другие решения из здесь, но безуспешно.
form
в свойformdata
, а толькоmyfile
. Ваша полезная нагрузка должна состоять изmyfile
иmyvalue
. Как вы можете видеть на вашем скриншоте.myform
явно не файл, а объект javascript. Это бессмысленно. - person Sraw   schedule 03.10.2018form.elements.myfile
, но это тоже не помогает. Дайте мне секунду, чтобы сделать скриншоты... - person Cleb   schedule 03.10.2018var formdata = new FormData(form); formdata.append("myvalue", 10)
. - person Sraw   schedule 03.10.2018