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

Поле формы PasswordField

Класс PasswordField применяется для создания поля ввода пароля в формах Flask-WTF. Это наследник класса StringField, который при рендеринге создаёт HTML-тег input с атрибутом type="password". Первым параметром передаётся подпись поля, остальные параметры совпадают с параметрами StringField.

В отличие от обычного текстового поля, браузер скрывает вводимые символы точками или звёздочками. Это предотвращает подглядывание пароля посторонними людьми.

Синтаксис

from wtforms import PasswordField field = PasswordField(label, [validators], **kwargs)

Пример

Давайте создадим простую форму с полем пароля:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import PasswordField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class LoginForm(FlaskForm): password = PasswordField('Password') submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = LoginForm() if form.validate_on_submit(): return form.password.data return render_template('index.html', form=form)

Давайте выведем форму в шаблоне:

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.password.label }} {{ form.password() }}</p> <p>{{ form.submit() }}</p> </form>

В браузере поле пароля будет отображаться с скрытыми символами:

<form method="post"> <p><label>Password</label> <input type="password" name="password"></p> <p><input type="submit" value="Send"></p> </form>

Результат выполнения кода после отправки формы:

"abcde"

Пример

Давайте добавим валидатор обязательного заполнения поля:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import PasswordField, SubmitField from wtforms.validators import DataRequired, Length app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class LoginForm(FlaskForm): password = PasswordField('Password', [ DataRequired(), Length(min=5) ]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = LoginForm() if form.validate_on_submit(): return form.password.data return render_template('index.html', form=form)

Давайте выведем ошибки валидации в шаблоне:

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.password.label }} {{ form.password() }}</p> {% for error in form.password.errors %} <p>{{ error }}</p> {% endfor %} <p>{{ form.submit() }}</p> </form>

Если пароль короче 5 символов, будет выведено сообщение об ошибке.

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

  • класс Form,
    который создаёт форму
  • поле StringField,
    которое создаёт текстовое поле
  • валидатор DataRequired,
    который требует обязательного заполнения
  • метод validate_on_submit,
    который проверяет отправку формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить