欢迎访问宙启技术站
智能推送

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验证器确保用户至少选择了一个选项。