栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

一页中有两种形式的flask-bootstrap

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一页中有两种形式的flask-bootstrap

用不同的名称定义这两个SubmitField,如下所示:

class Form1(Form):    name = StringField('name')    submit1 = SubmitField('submit')class Form2(Form):    name = StringField('name')    submit2 = SubmitField('submit')

然后在

view.py

....form1 = Form1()form2 = Form2()if form1.submit1.data and form1.validate_on_submit():  # notice the order ....if form2.submit2.data and form2.validate_on_submit():  # notice the order ....

现在问题解决了。

如果您想深入了解它,请继续阅读。

这里是

validate_on_submit()

    def validate_on_submit(self):        """        Checks if form has been submitted and if so runs validate. This is        a shortcut, equivalent to ``form.is_submitted() and form.validate()``        """        return self.is_submitted() and self.validate()

这里是

is_submitted()

    def is_submitted(self):        """        Checks if form has been submitted. The default case is if the HTTP        method is **PUT** or **POST**.        """        return request and request.method in ("PUT", "POST")

调用时

form.validate_on_submit()
,无论单击哪个提交按钮,它都会检查表单是否已通过HTTP方法提交。因此,上面的小技巧只是添加一个过滤器(以检查Submit是否具有数据,即
form1.submit1.data
)。

此外,我们更改了if的顺序,因此,当我们单击一个提交时, 它仅将此表单调用validate() ,从而防止了两种表单的验证错误。

故事还没有结束。这里是

.data

@propertydef data(self):    return dict((name, f.data) for name, f in iteritems(self._fields))

它返回一个具有字段名(键)和字段数据(值)的字典,但是, 我们的两个表单提交按钮具有相同的名称

submit
(键)!

当我们单击第一个提交按钮(在form1中)时,来自的调用将

form1.submit1.data
返回一个类似这样的字典:

temp = {'submit': True}

毫无疑问,当我们打电话时

if form1.submit.data:
,它会返回
True

当我们单击第二个提交按钮(在form2中)时,对

.data
in的调用 首先*
ifform1.submit.data:
在dict中添加键值,然后从中调用添加另一个键值,最后,该dict将如下所示:
*
ifform2.submit.data:

temp = {'submit': False, 'submit': True}

现在我们调用

if form1.submit.data:
True
即使我们单击的提交按钮位于form2中,它也会返回。

这就是为什么我们需要

SubmitField
使用不同的名称来定义这两个。顺便说一句,感谢您的阅读(到这里)!

感谢您的通知,他添加了一个有关的问题

validate()
,请检查以下评论!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号