请问Flask的request.form和request.data有什么区别?

Flask的request.form和request.data有什么区别


守候你守候我
浏览 2921回答 4
4回答

FFIVE

区别如下:1、用法不同Request.Form:获取以POST方式提交的数据(接收Form提交来的数据)Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。2、接收的方法不同Request.form方法,它是用来接收表单变量的(post 方法)Request对象也可以不指明具体使用QueryString或是form方法,如果包含以上两种方式(优先获取GET方式提交的数据),它会在 QueryString、Form、ServerVariable中都搜寻一遍。3、传递数据量不同Request.form方法能接收的数据没有限制。Reques的对象为trequest.QueryString时只能接收数据量小于2KB数据。4、执行速度不同Request.form方法的执行速度取决于接收数据量的大小,如果数据较多执行速度比较慢。Reques执行速度要比Request.form方法快。一般往数据库请求查询时用 request.QueryString方法来提高查询的速度。

呼啦一阵风

首先使用这两个方法的前提是post或者put请求两者的区别在于处理不同mimetype类型的数据,返回值也不同。当minitype为application/x-www-form-urlencoded或者multipart/form-data的时候,也就是我们所谓表单提交,访问request.form会返回一个包含解析过的的表单对象的 MultiDict,而request.data是空的。当flask遇到不能处理的mimetype时,请求的数据就不能被其它方式正常解析,这些方式包括request.form、request.json和request.files这几个常用的用来访问数据的属性。这时就把数据作为字符串存在request.data中。这里注意一下request.json需要application/json的mimetype类型。知道了这些处理数据的过程,那我们就可以对提交的数据进行扩展,定义一些自己专用的mimetype类型,并在Request类中定义处理专用mimetype数据的方法,从而让我们实现更个性、与众不同的功能需求。

摇曳的蔷薇

在页面间传值,即值由一个页面传到另一个页面,在另一个页面可以用request()来接收值。在页内传值,即表单值提交给自身页面,在自身页面脚本里面可以用request.form() 来接收值
打开App,查看更多内容
随时随地看视频慕课网APP