(1)为什么我们能够从request.GET.get()/request.POST.get()中取到数据? 什么时候可以取到数据?
在我们发送数据的时候:
1.只要请求头中的Content-Tpye的数据类型是for-data/x-www-form-urlencoded就可以取到数据
(2)form-data/x-www-form-urlencoded?
print(request.body)
当发送数据到服务器时,默认数据保存在request.body中,
但当发送的数据中的请求头中的ContentType=form-data/x-www-form-urlencoded时,
Django会从request.body中把数据加载到内存中(bytesIO)并赋值给request.POST中。(目的:方便取值,但是不支持发送给服务器原始的json数据,它不会帮你做序列化)
这时只能现将其转换成相应格式的字符串,在通过json进行反序列化拿到值。
(1)发送form-data数据(post)===>> key:age value:18:
b'----------------------------961163095731734796010862 Content-Disposition: form-data; name="age" 18 ----------------------------961163095731734796010862-- '
(2)发送x-www.form-urlencoded数据(post):
b'age=18'
Django请求生命周期?
print(request.GET)
from django.core.handlers.wsgi import WSGIRequest
ctrl + 点击(WSGIRequest)
GET
POST
这里的data=BytesIO(self._body)就是将request.body中的数据放到内存中,