Атрибут name
Атрибут name применяется к экземпляру класса
Field и хранит строковое имя поля формы.
Это имя используется при разборе данных формы,
построении HTML-разметки, а также при обращении
к полю через словарь данных формы.
Значение атрибута name задаётся при создании
поля и обычно совпадает с именем переменной,
под которой поле объявлено в классе формы.
Атрибут доступен только для чтения после инициализации
поля и не изменяется при обработке данных.
Синтаксис
field.name
Пример
Давайте создадим простое поле и выведем его имя:
from wtforms import StringField
field = StringField('username')
res = field.name
print(res)
Результат выполнения кода:
"username"
Пример
Давайте объявим поле внутри формы и получим его имя через экземпляр формы:
from flask import Flask, render_template
from wtforms import Form, StringField
app = Flask(__name__)
class UserForm(Form):
username = StringField('username')
@app.route('/')
def index():
form = UserForm()
res = form.username.name
return str(res)
Результат выполнения кода:
username
Пример
Давайте используем атрибут name для доступа
к данным поля через словарь data формы:
from flask import Flask, request
from wtforms import Form, StringField
app = Flask(__name__)
class UserForm(Form):
username = StringField('username')
@app.route('/', methods=['POST'])
def index():
form = UserForm(request.form)
key = form.username.name
res = form.data[key]
return str(res)
Результат выполнения кода для отправленного значения 'abcde':
abcde