wtformsSelectMultipleField()在Python中的使用示例
发布时间:2024-01-14 10:38:23
wtformsSelectMultipleField()是WTForms中的一个字段类,用于生成多选的表单字段。它可以生成一个多选框列表,用户可以选择其中的多个选项。
下面是一个示例用法:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import SelectMultipleField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
class MyForm(FlaskForm):
options = SelectMultipleField('Options', choices=[('1', 'Option 1'), ('2', 'Option 2'), ('3', 'Option 3')],
validators=[DataRequired()])
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
selected_options = form.options.data
return f"Selected options: {selected_options}"
return render_template('index.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
在上面的示例中,我们创建了一个基于FlaskForm的表单类MyForm,其中包含一个名为options的多选字段。options字段通过choices参数设置了可选项,在这个示例中我们提供了三个选项。validators参数为选项设置了DataRequired验证器,以确保至少选择一个选项。
在路由函数中,我们实例化了MyForm类,并将其传递给index.html模板进行渲染。当用户提交表单时,我们可以通过form.options.data获取用户选择的选项,并返回给用户。
在index.html模板中,可以使用{{form.options}}来渲染生成的多选框列表。
<!DOCTYPE html>
<html>
<head>
<title>My Form</title>
</head>
<body>
<h1>My Form</h1>
<form method="POST" action="/">
{{ form.csrf_token }}
{{ form.options.label }} {{ form.options }}
{{ form.submit() }}
</form>
</body>
</html>
上述代码创建了一个包含一个多选框列表的表单,并将其提交到根URL(/)。
当用户选择了一个或多个选项并提交表单时,提交的数据会被验证并传递到index()函数,然后返回一个带有选项的字符串。
就这样,我们使用wtformsSelectMultipleField()创建了一个多选框列表。通过设置choices参数,我们可以定义可选的选项列表,并使用DataRequired验证器确保用户至少选择了一个选项。
