Правило FileRequired
Правило FileRequired применяется к полю формы
FileField или MultipleFileField и проверяет,
что пользователь обязательно загрузил файл. Если файл не был
выбран, валидация завершается ошибкой. В первом параметре
передаётся текст сообщения об ошибке.
Синтаксис
FileRequired(message='File required')
Пример
Давайте создадим форму с полем для загрузки файла и применим
к нему правило FileRequired:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import FileField, SubmitField
from wtforms.validators import FileRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class UploadForm(FlaskForm):
file = FileField('File', validators=[FileRequired()])
submit = SubmitField('Upload')
@app.route('/', methods=['GET', 'POST'])
def index():
form = UploadForm()
if form.validate_on_submit():
return 'file uploaded'
return render_template('index.html', form=form)
Создадим шаблон для вывода формы:
<form method="post" enctype="multipart/form-data">
{{ form.csrf_token }}
<p>{{ form.file.label }} {{ form.file() }}</p>
<p>{{ form.submit() }}</p>
</form>
Если отправить форму без выбранного файла, валидация не пройдёт,
и в атрибуте errors поля появится сообщение об ошибке.
Пример
Давайте зададим собственное сообщение об ошибке через параметр
message:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import FileField, SubmitField
from wtforms.validators import FileRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class UploadForm(FlaskForm):
file = FileField('File', validators=[
FileRequired(message='Please select a file')
])
submit = SubmitField('Upload')
@app.route('/', methods=['GET', 'POST'])
def index():
form = UploadForm()
if form.validate_on_submit():
return 'file uploaded'
return render_template('index.html', form=form)
Результат выполнения кода при отправке пустой формы:
"Please select a file"
Смотрите также
-
класс
FlaskForm,
который является базой для форм Flask -
правило
FileAllowed,
которое проверяет расширение загружаемого файла -
правило
FileSize,
которое проверяет размер загружаемого файла -
поле
FileField,
к которому применяется правило FileRequired