flask_验证前端传入的数据
当前端传入的数据,后端是必须要验证,不然容易出现安全事故
如:sql 注入,跨站脚本攻击(XSS )和 HTTP批量请求(CSRF跨站请求伪造)
1、直接在视图函数中的业务逻辑中验证数据,如登录中的验证
abort()的description 参数是中文的话,前端会显示乱码,需要指定content-type :text/html;charset=utf-8;
abort()没有content-type 参数,但源码实际是调用的Response()类,所以另一种响应写法:
返回模板对应的写法,即渲染前端:
前端的逻辑代码
2、借助第三方工具验证,如:flask_wtf
pip install flask_wtf,具体的使用可以查看源码,主要用于验证数据的
RegisterForm 校验器参数属性说明:
filters:会对前端输入的参数进行过滤处理,用这个参数对新数据进行校验,如:
filters = [ lambda x : x + ' h ' , ] ,
widget:自定义组件,基本用不到
render_kw:前端添加一些额外的属性,如:
render_kw = { "class" : "form-control " }
在视图函数中调用校验器检验数据
form 可以获取前端传过来的所有数据,form的几个重要函数:
validate:验证主函数
process:验证数据
data:获取所有数据
errors:获取错误信息
form 的初始化数据
formdata ,flask,django里的multidict ,请求的content-type 是 application / x -www - form -urlencoded
obj,调用另一个类的属性,form 检验
data,字典形式的数组
ps:通过前端请求,后端视图函数校验器获取数据是使用 formdata = request. form,通过ajax 或者postman通过 json 格式请求,视图函数校验器获取数据为 data = request.json
3、自定义校验类
自定义类进行校验前端传入的数据,如:对前端传入的手机号码校验
调用校验器