Поле формы RadioField
Класс RadioField применяется для создания поля формы, которое отображается как группа радиокнопок. Пользователь может выбрать только один вариант из предложенных. Первым параметром передается имя поля, вторым - метка (label). Параметр choices задает список доступных вариантов в виде списка кортежей (значение, отображение).
Синтаксис
from wtforms import RadioField
field = RadioField('label', choices=[('value1', 'Display 1'), ('value2', 'Display 2')])
Пример
Давайте создадим простую форму с полем выбора пола и выведем выбранное значение:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import RadioField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
gender = RadioField('Gender', choices=[('m', 'Male'), ('f', 'Female')])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
res = None
form = MyForm()
if form.validate_on_submit():
res = form.gender.data
return render_template('index.html', form=form, res=res)
Шаблон для вывода формы:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.gender.label }}<br>{{ form.gender() }}</p>
<p>{{ form.submit() }}</p>
</form>
{% if res %}
<p>Selected: {{ res }}</p>
{% endif %}
После выбора варианта "Male" и отправки формы результат выполнения кода:
Selected: m
Пример
Давайте зададим значение по умолчанию с помощью параметра default:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import RadioField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
choice = RadioField('Choice', choices=[('a', 'A'), ('b', 'B'), ('c', 'C')], default='b')
submit = SubmitField('Send')
@app.route('/')
def index():
form = MyForm()
return render_template('index.html', form=form)
Шаблон для вывода формы:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.choice.label }}<br>{{ form.choice() }}</p>
<p>{{ form.submit() }}</p>
</form>
При открытии страницы радиокнопка "B" будет выбрана по умолчанию.
Смотрите также
-
класс
SelectField,
который создает выпадающий список -
класс
SelectMultipleField,
который позволяет выбрать несколько значений -
класс
BooleanField,
который создает флажок -
класс
Form,
который является базовым классом для всех форм