Это дополнительный вопрос от здесь : там я узнал, как загрузить файл, обработать его, а затем снова заполнить веб-сайт его содержимым, используя 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'
Я также пробовал другие решения из здесь , но безуспешно.