我在之前做了一个关于AJAX和form组件的笔记,可以参考:Django学习笔记(8)——前后台数据交互实战(AJAX);Django学习笔记(6)——Form表单
我觉得自己在写Django笔记(8)的时候,我只是对AJAX有个粗略的了解,就明白其两大优点,局部刷新和异步交互。Form组件知识虽然大多数都明白了,但是对局部钩子和全局钩子还不是很清楚。留了个坑,所以在以后的学习中,肯定会再遇到。
现在,我感觉自己将关于AJAX和Django的数据交互这部分了解清楚了,而且将Form组件的钩子也理解透彻了。特意做个笔记记录自己的学习过程。也是在Django笔记(8)的时候说过的,我将这段内容理清楚了,会写一个易于理解的文章巩固,而这篇文件就是。
下面我分别将自己所做的AJAX知识笔记,Form组件中局部钩子和全局钩子的笔记展示一下。其中局部钩子和全局钩子都做了源码分析,是为了更好的理解其原理吧。
AJAX知识
1,AJAX请求头中常见contentType
数据发送出去,还需要服务端解析成功才有意义。Python内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的Content-Type 字段获取请求头中的消息主体是用何种方式编码,再对主体进行解析。所以说到POST提交数据方案,包含了Content-Type 和消息主体编码方式两部分。
下面我们一起来看看ajax中POST请求的Content-Type。以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式 application/xml : XML数据格式 application/atom+xml :Atom XML聚合格式 application/json : JSON数据格式 application/pdf :pdf格式 application/msword : Word文档格式 application/octet-stream : 二进制流数据(如常见的文件下载) application/x-www-form-urlencoded :
ContentType指的是请求体的编码类型,常见的有三种:
1.1,application/x-www-form-urlencoded
这应该是最常见的POST提交数据的方式了。浏览器的原生表单