Я пытаюсь загрузить несколько файлов с помощью flask-wtf.Я могу загрузить один файл без проблем, и я смог изменить html-тэг, чтобы принимать несколько файлов, но пока я не смог получить больше, чем первый файл.
Прикрепленный файлКод даст мне первый файл, но я не могу понять, как получить из него больше файлов.Я подозреваю, что "render_kw = {'multiple': True}" просто меняет тэг HTML, поэтому при таком подходе я, возможно, лаю не то дерево.Я также наткнулся на «MultipleFileField» из wtforms, но, похоже, я не могу получить это, чтобы вернуть какие-либо файлы, опять же, вероятно, так как это не очень хорошо работает с flask_wtf, который я пытаюсь использовать.Есть хороший способ сделать это?
@app.route('/', methods=['GET', 'POST'])
def upload():
form = Upload_Form(CombinedMultiDict((request.files, request.form)))
if form.validate_on_submit():
files = form.data_file.data
files_filenames = secure_filename(files.filename)
data.save(os.path.join(app.config['UPLOAD_FOLDER'], data_filename))
print(files_filenames)
return render_template('input_form.html', form=form)
return render_template('input_form.html', form=form)
class Upload_Form(FlaskForm):
data_file = FileField(render_kw={'multiple': True}, validators=[FileRequired(), FileAllowed(['txt'], 'text files only')])
<!--input_form.html--->
<form method=post enctype="multipart/form-data">
<table>
{{ form.hidden_tag() }}
{% for field in form %}
<tr>
<td>{% if field.widget.input_type != 'hidden' %} {{ field.label }} {% endif %}</td><td>{{ field }}</td>
</tr>
{% endfor %}
</table>
<p><input type=submit value=Compute></form></p>
Это возвращает первый файл, но мне нужно, чтобы вернуть все выбранные файлы.Список будет наиболее полезным, но любая структура данных, которую я могу распаковать, будет работать.Спасибо.