form1.validate_on_submit()
实际返回的是函数is_submitted
和函数validate
的值。
函数is_submitted
只要是PUT请求或者POST请求,就返回True
。
函数validate
则会验证表单中的所有输入验证,例如DataRequired
、Length
或者自定义的验证:
class Form1(Form):
name = StringField('name')
def validate_name(self, field):
# 自定义验证
如果所有的验证通过,则函数validate
返回True
。
对于你的例子来说,如果Form1
中没有添加表单验证,则无论哪个表单提交,form1.validate_on_submit()
的值都是True
。
如果确实需要在一个页面中添加多个表单的话,可以设置不同的action:
<!--Form 1-->
<form method="post" action="/submit-form1">
...
</form>
<!--Form 2-->
<form method="post" action="/submit-form2">
...
</form>
GitHub上有一个关于这个问题的Issue:is_submitted with multiple forms?