Django——request的生命周期

(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\r\nContent-Disposition: form-data; name="age"\r\n\r\n18\r\n----------------------------961163095731734796010862--\r\n'

(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中的数据放到内存中,

猜你喜欢

转载自www.cnblogs.com/zsdbk/p/9404822.html
今日推荐