【问题标题】:validate_on_submit() from Flask-WTF always returns true来自 Flask-WTF 的 validate_on_submit() 总是返回 true
【发布时间】: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


    【解决方案1】:

    根据this example,您没有对表单指定任何要求。应该是这样的:

    class SignForm(FlaskForm):
        testStrField = StringField(validators=[InputRequired()])
        doCheckSign = SubmitField(validators=[InputRequired()])
    

    【讨论】:

    • 是的,但我对表单的数据没有任何要求
    猜你喜欢
    • 1970-01-01
    • 2013-12-08
    • 2023-03-15
    • 2018-03-15
    • 2016-10-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多