数据传输编码模式的解析

数据传输编码模式的解析

urlencoded

还记不记得之前讲过的用 form 表单传送文件,我们需要去改变一个表单的参数,enctype参数,默认的时候是 urlencoded 模式,想一下,前端页面发送给后端的数据是什么类型的?是字典?还是字符串?或者是类似于关键字参数那样的的 username=‘chanyuli’ ?这时候试验一下,自己写一个form表单,然后submit提交。去浏览器的 f12 看一下。

点击network ,查看一下你的请求,然后拉到最下面,有一个 Form Data,这里你看到的是类似于 键值对的数据格式,但其实这只是浏览器为了方便用户观看,而改写成这样,真正的数据格式要点击 Form Data旁边的 view source ,这是后看到的就是真正的格式了,发现很眼熟,就系那个是url后面的后缀,username=admin&password=123,有&符号,所以看起来就很明显了。

username=admin&password=123这种就是符合urlencoded数据格式

django后端针对username=admin&password=123的urlencoded数据格式会自动解析,将结果打包给request.POST 用户只需要从request.POST即可获取对应信息

所以我们想要传文件的时候就要改变数据传输编码格式。

formdata

django后端针对formdata格式类型数据 也会自动解析
但是不会方法request.POST中而是给你放到了request.FILES中

ajax的传输数据编码格式

ajax默认的提交数据的编码格式也是urlencoded
也就是说也是这个样子的 username=jason&password=123

只要你的数据符合上面的类型,你就能用request.POST获取,django汇编你解析到这里面。

总结:django后端针对不同的编码格式数据 会有不同的处理机制以及不同的获取该数据的方法

posted @ 2019-10-29 20:36  chanyuli  阅读(293)  评论(0编辑  收藏  举报