确定在 Flask 视图中按下了哪个 WTForms 按钮 [英] Determine which WTForms button was pressed in a Flask view
本文介绍了确定在 Flask 视图中按下了哪个 WTForms 按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含多个链接的页面,可以将用户重定向到不同的页面.我认为使用表单会更好,所以我定义了一个带有多个 SubmitFields
的 WTForms Form
.我如何确定点击了哪个按钮并据此重定向?
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 SubmitFields
. How do I determine which button was clicked and redirect based on that?
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>
推荐答案
您在表单中添加了两个按钮,因此请检查哪些字段的数据是 True
.
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>
这篇关于确定在 Flask 视图中按下了哪个 WTForms 按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文