【发布时间】:2021-01-25 23:20:17
【问题描述】:
我在这样的代码中使用 Flask-WTF 的 validate_on_submit() 函数来处理非常简单的一页网站:
class SignForm(FlaskForm):
testStrField = StringField("enter some text data")
doCheckSign = SubmitField('Check the signed data')
@AppEDS1.route('/', methods=['GET', 'POST'])
def index1():
form = SignForm()
if form.validate_on_submit():
....
在我的<form></form> 中,还有一些带有单独 JS 处理程序的按钮用于 onclick 事件,我注意到对我的站点的每个 POST 请求都会触发 validate_on_submit() ,因为它为每个请求返回 TRUE。
实际上,请求之间的唯一区别在于相应的请求有效负载部分:
(对于“just-onclick-POST-request”) csrf_token=blablabla&testStrField=
(对于“sumbit-POST-request”) csrf_token=blablablabla&testStrField=ggggggggggg&doCheckSign=Check+the+signed+data
所以我的问题是 - validate_on_submit() 实际上如何确定它是“提交 POST 请求”(必须返回 TRUE)还是对网站后端的任意 POST 请求(必须返回 FALSE 但它没有)?
【问题讨论】:
标签: python python-3.x flask flask-wtforms