python-django框架-AJAX研究
AJAX是做什么的?
是异步发请求的,
1,预备知识,json
什么是json?这是一种数据格式,和语言没有关系,
为什么会有json这种数据格式,就是为了可以实现跨语言的传输,比如前后端的传输,前端是js,后端可以是c,go,python,java,php,等等,
不同的后端语言怎么和前端语言做交互呢?
现在企业基本都是前后端分离的,前端需要什么数据,你就返回什么数据,就可以了,前端框架Vue,后端就是写API,只写API也挺麻烦的,也不简单,
---------------
基本认识:
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言 *
JSON 具有自我描述性,更易理解
有空还是需要研究一下ppt的。这是管理层需要的技能,
------------------
json是2001年出来的,目的就是为了替代繁重的xml,
JSON 简单的语法格式和清晰的层次结构明显要比 XML 容易阅读,
并且在数据交换方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽。
-------------------------------------
2,
我们学过的发请求的方式:
1,直接在浏览器输入网址,回车,这是一个get请求,
2,a标签,get请求
3,form表单,post请求,和get请求都可以发,
4,AJAX,也可以发get请求,也可以发post请求,
四种都是不依赖的,独立的,
#######################################################
3,AJAX
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。
即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。
所以这是为了使用js传输xml到服务器而产生的技术,
但是现在基本都是使用AJAX传递json数据格式了,
----------------------------------------
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 同步就是要排队,需要等,这是AJAX的一大优点,
异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。异步就是可以一起走,不能等
---------------------------------------
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程)
---------------------------------------
AJAX特点:
1,异步,最重要的特点,
2,局部刷新浏览器,(偷偷发请求了,)
比如注册的时候,输入已经存在的用户名,点击注册,会提示该用户名已经注册,但是页面是没有刷新的,
但是怎么知道该用户已经注册的,就是往数据库去校验了,这就是局部刷新,
---------------
AJAX常用的场景:
1,注册页面,
输入用户名,点击注册,会偷偷的使用AJAX发送请求,
输入用户名,失去光标,会偷偷的使用AJAX发送请求,
2,编辑页面,可以编辑之后马上就把新数据填充进来,
------------------
ajax可以接收一个地址,然后跳转到这个地址,
----------------------
AJAX请求如何设置csrf_token
ajax发送post请求的时候,也是需要校验csrf的,怎么可以满足这个csrf?
1,可以在html中加{{csrf_token}}
然后把这个name和value拿到,拼成一个字典,传到后端,
-------------------------
django序列化,
现在是直接返回的各种数据,然后在前端渲染的,
但是实际工作中前端是Vue写的,它不认识你的queryset对象,你只能回复json数据,
所以这里涉及到了一个问题,就是你怎么把你的queryset对象转换成json数据格式,
django准备了一个方法,
from django.core import serializers
这个方法比较粗糙,
-----------------------------
AJAX上传文件
---------------------
补充一个SweetAlert插件示例
#########################################################################
总结: