Determine which WTForms button was pressed in a Flask view

前端 未结 1 1396
慢半拍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.hidden_tag() }} {{ form.user_stats }} {{ form.room_stats }}

    0 讨论(0)
提交回复
热议问题