Flask WTForms:如何将表单值返回到Python中?

2024-10-03 19:25:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是在5个不同的字段上获得用户输入,然后让用户输入的内容可以在python中的程序的其余部分中使用。我目前掌握的代码如下:

class ArtistsForm(Form):
    artist1 = StringField('Artist 1', validators=[DataRequired()])
    artist2 = StringField('Artist 2', validators=[DataRequired()])
    artist3 = StringField('Artist 3', validators=[DataRequired()])
    artist4 = StringField('Artist 4', validators=[DataRequired()])
    artist5 = StringField('Artist 5', validators=[DataRequired()])


@app.route('/', methods=('GET', 'POST'))
def home():
    form = ArtistsForm(csrf_enabled=False)
    if form.validate_on_submit():
        return redirect('/results')
    return render_template('home.html', form=form)

@app.route('/results', methods=('GET', 'POST'))
def results():
    artist1 = request.form['artist1']
    artist2 = request.form['artist2']
    artist3 = request.form['artist3']
    artist4 = request.form['artist4']
    artist5 = request.form['artist5']

    return render_template('results.html')

有什么想法吗?(我知道csrf_enabled=False是不好的,我现在只是做测试。)我希望下面的函数的值进行一些计算(没有web方面)。

编辑:我更新了上面的代码。我能把价值观写进去。现在我只需要把它们传递给下面的函数。


Tags: 代码用户formreturnartistrequestresultsvalidators
1条回答
网友
1楼 · 发布于 2024-10-03 19:25:27

您需要填充某种数据结构,如变量、列表或字典,然后将其传递给python函数。然后需要将python函数的返回/结果作为上下文参数传递,以便在结果模板中呈现。

示例:

@app.route('/', methods=('GET', 'POST'))
def home():
    form = ArtistsForm(request.POST, csrf_enabled=False)
    if form.validate_on_submit():
        art1 = form.artist1.data
        art2 = form.artist2.data
        result = computate_uncertainty(art1, art2)
        return render_template('results.html', result=result)
    return render_template('home.html', form=form)

相关问题 更多 >