【问题标题】:Flask WTForms: how do I get a form value back into Python?Flask WTForms:如何将表单值返回到 Python?
【发布时间】:2016-02-10 20:29:51
【问题描述】:

我想要做的是让用户在 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 不好,我现在只是为了测试。)我想要下面这个函数的值,做一些计算(没有网络方面)。

编辑:我更新了上面的代码。我能够获取这些值。现在我只需要将它们传递给下面的函数。

【问题讨论】:

    标签: python flask wtforms


    【解决方案1】:

    您需要填充某种数据结构,例如变量、列表或字典,然后将其传递给 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-18
      • 2021-03-29
      • 2013-12-08
      • 2018-02-08
      • 1970-01-01
      • 2016-05-30
      • 2020-02-27
      • 2013-05-21
      相关资源
      最近更新 更多