Поле формы EmailField
Поле EmailField применяется в классе формы
Flask-WTF и создаёт поле для ввода email-адреса.
Первым параметром передаётся подпись поля, которая
отображается рядом с полем ввода. При отправке формы
значение поля автоматически проверяется на соответствие
формату email.
Синтаксис
EmailField(label, [validators])
Пример
Давайте создадим форму с полем для ввода email-адреса:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import EmailField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class UserForm(FlaskForm):
email = EmailField('Email')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = UserForm()
if form.validate_on_submit():
return form.email.data
return render_template('index.html', form=form)
Шаблон для вывода формы:
<form method="post">
{{ form.csrf_token }}
<p>{{ form.email.label }} {{ form.email }}</p>
<p>{{ form.submit }}</p>
</form>
Результат выполнения кода при вводе адреса user@example.com:
"user@example.com"
Пример
Давайте добавим валидатор DataRequired,
чтобы поле нельзя было оставить пустым:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import EmailField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
class UserForm(FlaskForm):
email = EmailField('Email', validators=[DataRequired()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = UserForm()
if form.validate_on_submit():
return form.email.data
return render_template('index.html', form=form)
Шаблон для вывода формы:
<form method="post">
{{ form.csrf_token }}
<p>{{ form.email.label }} {{ form.email }}</p>
<p>{{ form.submit }}</p>
</form>
Результат выполнения кода при вводе адреса user@example.com:
"user@example.com"
Смотрите также
-
класс
FlaskForm,
который является основой для создания форм -
валидатор
Email,
который проверяет формат email-адреса -
поле
StringField,
которое создаёт обычное текстовое поле -
метод
validate_on_submit,
который проверяет данные формы при отправке