Поле формы WeekField
Поле формы WeekField применяется в классе формы
Flask-WTF и создаёт поле для ввода недели.
Первым параметром передаётся метка поля, которая
отображается рядом с полем ввода. Поле принимает
значение в формате HTML5 week, то есть
год и номер недели, например 2024-W01.
После отправки формы значение поля доступно через
атрибут data формы. Если значение не прошло
валидацию, ошибки доступны через атрибут
errors.
Синтаксис
from wtforms import WeekField
field = WeekField(label, [validators])
Пример
Давайте создадим форму с полем WeekField
и выведем её на странице:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import WeekField, SubmitField
app = Flask(__name__)
app.secret_key = 'abcde'
class WeekForm(FlaskForm):
week = WeekField('Week')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = WeekForm()
if form.validate_on_submit():
res = form.week.data
return str(res)
return render_template('index.html', form=form)
Давайте выведем форму в шаблоне:
<form method="post">
{{ form.csrf_token }}
<p>{{ form.week.label }} {{ form.week }}</p>
<p>{{ form.submit }}</p>
</form>
После отправки формы с неделей 2024-W01
в браузере отобразится результат:
"2024-W01"
Пример
Давайте добавим валидатор DataRequired,
чтобы поле было обязательным:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import WeekField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.secret_key = 'abcde'
class WeekForm(FlaskForm):
week = WeekField('Week', [DataRequired()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = WeekForm()
if form.validate_on_submit():
res = form.week.data
return str(res)
return render_template('index.html', form=form)
Если отправить форму без значения, в атрибуте
errors появится сообщение об ошибке.
Смотрите также
-
класс
FlaskForm,
который является базовым классом для форм -
метод
validate_on_submit,
который проверяет отправку и валидацию формы -
атрибут
data,
который хранит значения полей формы -
атрибут
errors,
который хранит ошибки валидации полей