【问题标题】:Determine which WTForms button was pressed in a Flask view确定在 Flask 视图中按下了哪个 WTForms 按钮
【发布时间】:2016-06-16 21:21:54
【问题描述】:

我有一个包含多个链接的页面,用于将用户重定向到不同的页面。我认为使用表单会更好,所以我定义了一个带有多个 SubmitFields 的 WTForms Form。如何确定单击了哪个按钮并据此重定向?

class MainForm(Form):
    user_stats = SubmitField('User Stats')
    room_stats = SubmitField('Room Stats')

@main.route('/')
@login_required
def index():
    form = MainForm()    
    return render_template('index.html', form=form)
<form action="#" method="post">
    {{ wtf.quick_form(form) }}
</form>

【问题讨论】:

    标签: python flask wtforms flask-wtforms


    【解决方案1】:

    您在表单中添加了两个按钮,因此请检查哪些字段的数据是True

    from flask import Flask, render_template, redirect, url_for
    from flask_wtf import Form
    from wtforms import SubmitField
    
    app = Flask(__name__)
    app.secret_key = 'davidism'
    
    class StatsForm(Form):
        user_stats = SubmitField()
        room_stats = SubmitField()
    
    @app.route('/stats', methods=['GET', 'POST'])
    def stats():
        form = StatsForm()
    
        if form.validate_on_submit():
            if form.user_stats.data:
                return redirect(url_for('user_stats'))
            elif form.room_stats.data:
                return redirect(url_for('room_stats'))
    
        return render_template('stats.html', form=form)
    
    app.run(debug=True)
    
    <form method="post">
        {{ form.hidden_tag() }}
        {{ form.user_stats }}
        {{ form.room_stats }}
    </form>
    

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 2010-12-05
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多