Determine which WTForms button was pressed in a Flask view

前端 未结 1 1385
慢半拍i
慢半拍i 2020-12-03 12:21

I have a page with multiple links to redirect the user to different pages. I thought using a form would be nicer, so I defined a WTForms Form with multiple

相关标签:
1条回答
  • 2020-12-03 13:02

    You added two buttons to the form, so check which of the fields' data is 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>
    
    0 讨论(0)
提交回复
热议问题