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

Атрибут id

Атрибут id принадлежит классу Field из библиотеки WTForms, с которой работает Flask. Он хранит строку - HTML-идентификатор поля формы, который подставляется в атрибут id тега input при рендеринге. Если идентификатор не задан явно, WTForms генерирует его автоматически из имени поля с префиксом id_, например id_name для поля name. Значение id можно переопределить при создании поля через параметр id или позже, присвоив новое значение. Атрибут удобно использовать для связки поля с тегом label через атрибут for, а также для обращения к элементу из JavaScript или CSS.

Синтаксис

field.id

Значение по умолчанию формируется как 'id_' + field.name.

Пример

Давайте создадим форму с полем и выведем его идентификатор по умолчанию:

from flask import Flask from wtforms import Form, StringField app = Flask(__name__) class MyForm(Form): name = StringField('Name') form = MyForm() @app.route('/') def index(): res = form.name.id return str(res)

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

"id_name"

Пример

Давайте зададим собственный идентификатор при создании поля:

from flask import Flask from wtforms import Form, StringField app = Flask(__name__) class MyForm(Form): name = StringField('Name', id='user_name') form = MyForm() @app.route('/') def index(): res = form.name.id return str(res)

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

"user_name"

Пример

Атрибут id можно изменить после создания поля, присвоив новое значение:

from flask import Flask from wtforms import Form, StringField app = Flask(__name__) class MyForm(Form): name = StringField('Name') form = MyForm() form.name.id = 'abcde' @app.route('/') def index(): res = form.name.id return str(res)

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

"abcde"

Пример

Давайте используем id для связки поля с меткой в шаблоне:

from flask import Flask, render_template from wtforms import Form, StringField app = Flask(__name__) class MyForm(Form): name = StringField('Name') @app.route('/') def index(): form = MyForm() return render_template('index.html', form=form)

Шаблон:

<label for="{{ form.name.id }}">{{ form.name.label }}</label> {{ form.name }}

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

<label for="id_name">Name</label> <input id="id_name" name="name" type="text" value="">

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

  • класс Field,
    которому принадлежит данный атрибут
  • атрибут name,
    который хранит имя поля
  • атрибут label,
    который хранит подпись поля
  • атрибут widget,
    который отвечает за рендеринг поля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить