- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Flask学习笔记(⼗五)--WTForms笔记
本章涉及到的知识如下:
表单类的概念,以及如何定义⼀个表单类
WTForms表单类验证表单功能,和使⽤表单类渲染模板的⽅法
以及flask获取表单数据
在form表单中做⽂件上传的⽅法
写在前⾯:⽤户提交⼀个表单,通常是以POST请求的⽅式发往服务器。服务器可以使⽤request.from获取其中的数据,然后在输⼊函数中
对信息进⾏验证处理。。然⽽,每次都要⼿动完成逻辑验证这种⽅法太过繁琐。WTForms可以把表单数据的处理变成⼀种欢乐的体验!
正⽂:
⼀、WTForms
WTForms拓展包有两个功能,第⼀个就是做表单验证,把⽤户提交上来的数据进⾏验证是否合法。第⼆个就是做模版渲染。
Flask-WTF是简化了WTForms操作的⼀个第三⽅库
安装依赖:
pipinstallflask-wtf
1.做表单验证:
1.⾃定义⼀个表单类,继承⾃wtforms.Form类。
2.定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持⼀致。
3.在需要验证的字段上,需要指定好具体的数据类型。
4.在相关的字段上,指定验证器validators。
5.以后在视图中,就只需要使⽤这个表单类的对象,并且把需要验证的数据,也就是request.form传给这个表单类,以后调⽤
form.validate()⽅法,如果返回True,那么代表⽤户输⼊的数据都是合法的,否则代表⽤户输⼊的数据是有问题的。如果验证失败了,那
么可以通过form.errors来获取具体的错误信息。
定义表单类:
classRegistForm(Form):
username=StringField(validators=[Length(min=3,max=10,message=⽤户名长度必须在3到10位之间)])
password=StringField(validators=[Length(min=6,max=10)])
password_repeat=StringField(validators=[Length(min=6,max=10),EqualTo(password)])
视图函数中的处理,request.from进⾏初始化-form.validate表单类验证-结果处理返回
form=RegistForm(request.form)
ifform.validate():
returnsuccess
else:
print(form.errors)
returnfail
常⽤的验证器:
数据发送过来,经过表单验证,因此需要验证器来进⾏验证,以下对⼀些常⽤的内置验证器进⾏讲解:
1.Email:验证上传的数据是否为邮箱。
2.EqualTo:验证上传的数据是否和另外⼀个字段相等,常⽤的就是密码和确认密码两个字段是否相等。
3.InputRequir:原始数据的需要验证。如果不是特殊情况,应该使⽤InputRequired。
3.Length:长度限制,有min和max两个值进⾏限制。
4.NumberRange:数字的区间,有min和max两个值限制,如果处在这两个数字之间则满⾜。
5.Regexp:⾃定义正则表达式。
6.URL:必须要是URL的形式。
7.UUID:验证UUID。
2.⾃定义验证器:
如果想要对表单中的某个字段进⾏更细化的验证,那么可以针对这个字段进⾏单独的验证。步骤如下:
1.定义⼀个⽅法,⽅法的名字规则是:`validate_字段名(self,filed)`。
2.在⽅法中,使⽤`field.data`可以获取到这个字段的具体的值。
3.如果数据满⾜条件,那么可以什么都不做。如果验证失败,那么应该抛出⼀个`wtforms.validators.ValidationError`的异常,并且
把验证失败的信息传到这个异常类中。
python对captcha这个字段内容进⾏验证,如果不是1234就抛出异常,否则验证通过!
captcha=StringField(validators=[Length(4,4)])
#1234
defvalidate_captcha(self,field):
原创力文档


文档评论(0)