需求:之前的路由请求格式,不是通用的请求格式,转化为get 和 post请求之后,可以通过request方法获取其中的参数
参考格式 04-使用 Flask 框架实现 POST和GET接口 - 马铃薯1 - 博客园 (cnblogs.com)
@web.route('/book/search/<q>') def search(q): pass
第三方插件库,WTForms
在flask内部并没有提供全面的表单验证,所以当我们不借助第三方插件来处理时候代码会显得混乱,而官方推荐的一个表单验证插件就是wtforms。
wtfroms是一个支持多种web框架的form组件,主要用于对用户请求数据的进行验证,其的验证流程与django中的form表单验证由些许类似,本文主要介绍wtforms组件使用方法以及验证流程。
wtforms依照功能主要分为以下几个类别:- Forms: 主要用于表单验证、字段定义、HTML生成,并把各种验证流程聚集在一起进行验证。
- Fields: 主要负责渲染(生成HTML)和数据转换。
- Validator:主要用于验证用户输入的数据的合法性。比如Length验证器可以用于验证输入数据的长度。
- Widgets:html插件,允许使用者在字段中通过该字典自定义html小部件。
- Meta:用于使用者自定义wtforms功能,例如csrf功能开启。
- Extensions:丰富的扩展库,可以与其他框架结合使用,例如django。
注意:
WTForms 表单类 searchForm
期待的输入是一个支持 getlist
方法的 MultiDict
类型
1) get请求获取的 request.args 是MultiDict
类型
2) post请求获取的 request.get_json() 是普通dict 类型,因此需要转换为 MultiDict(request.get_json()) 类型
官方文档:WTForms — WTForms Documentation (3.1.x) 参考文档:flask wtforms组件详解 - W-D - 博客园 (cnblogs.com) pip安装pip install wtforms
标签:06,请求,验证,get,表单,wtforms,WTForms From: https://www.cnblogs.com/REN-Murphy/p/18456903