РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
321 of 643 menu

Поле формы MultipleFileField

Поле MultipleFileField применяется для загрузки нескольких файлов в одном поле формы. Оно принимает список файлов из запроса и сохраняет их в атрибуте data. Первым параметром передаётся подпись поля, которая отображается рядом с элементом формы.

Синтаксис

from wtforms import MultipleFileField field = MultipleFileField(label, [validators])

Пример

Давайте создадим форму с полем MultipleFileField для загрузки нескольких файлов:

from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import MultipleFileField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class UploadForm(FlaskForm): files = MultipleFileField('Files') submit = SubmitField('Upload') @app.route('/', methods=['GET', 'POST']) def index(): form = UploadForm() res = None if form.validate_on_submit(): res = [f.filename for f in form.files.data] return render_template('index.html', form=form, res=res)

Теперь создадим шаблон для отображения формы:

<+jinja+>
{{ form.hidden_tag() }} {{ form.files(multiple=True) }} {{ form.submit() }}
{% if res %}

{{ res }}

{% endif %} <-jinja+>

Пример

Давайте добавим валидатор FileAllowed для проверки расширений загружаемых файлов:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import MultipleFileField, SubmitField from wtforms.validators import FileAllowed app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class UploadForm(FlaskForm): files = MultipleFileField( 'Files', validators=[FileAllowed(['txt', 'pdf'], 'Only txt and pdf!')] ) submit = SubmitField('Upload') @app.route('/', methods=['GET', 'POST']) def index(): form = UploadForm() res = None if form.validate_on_submit(): res = [f.filename for f in form.files.data] return render_template('index.html', form=form, res=res)

Результат выполнения кода после загрузки файлов article.txt и user.pdf:

['article.txt', 'user.pdf']

Смотрите также

  • поле FileField,
    которое загружает один файл
  • валидатор FileAllowed,
    который проверяет расширение файла
  • валидатор FileRequired,
    который проверяет наличие файла
  • валидатор FileSize,
    который проверяет размер файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить