django restframework request源码解析

 

 注意如果你同时使用request.body和request.data时

request .body 需要在request.data 前使用,不然获取会抛异常

其次request.body用户获取非表单类型数据请求体,如果只想获取表单请求参数使用request.POST

需要获取文件使用request.FILES,

request.data可以获取put.post.delete 类型的请求所有数据包含文件对象

request.query_params获取get请求参数params

 

 

request.post

HttpRequest.POST

包含所有给定HTTP POST参数的类字典对象,条件是请求包含表单数据。请参阅QueryDict下面的 文档。如果您需要访问请求中发布的原始或非格式数据,请HttpRequest.body改为通过属性进行访问 

可以通过带有空POST 字典的POST发出请求-例如,如果通过POST HTTP方法请求了表单,但其中不包含表单数据。因此,您不应该使用 POST方法进行检查。而是使用(请参阅)。if request.POSTif request.method == "POST"HttpRequest.method

POST包含文件上传信息。请参阅FILES

 

HttpRequest.body

原始HTTP请求主体为字节串。这对于以不同于常规HTML表单的方式处理数据很有用:二进制图像,XML有效负载等。对于处理常规表单数据,请使用 HttpRequest.POST

您也可以HttpRequest使用HttpRequest.read()文件状界面 从中读取内容HttpRequest.readline()使用这些I / O流方法之一读取请求访问body属性将产生一个RawPostDataException

 

一般如果表单请求需要上传文件时必须使用muti/form-data ,x-www-rform-urlencoded是无法实现文件上传的

 当请求上传mutipart/form-data时,如下:

request.body 获取到文件字节,

request.POST获取到参数不包含文件的querydict

request.data  参数和文件对象堆在其中都可以拿到

 

 

如果enctype=  'application/x-www-from-urlencoded'  时,无文件上传参数时,获取到参数

request.body ,获取到的是,data字节

request.POST获取到是参数querydict

request,data 也是表单参数querydict

 

posted @ 2020-11-15 01:00  不带R的墨菲特  阅读(176)  评论(2编辑  收藏  举报