序列化和反序列化的概念
序列化-将模型数据转化为json数据
反序列化-将接收到的json数据转化成模型
一般我们会从前端接收数据到后端并在后端用数据库储存起来,我们也需要从数据库返回数据到前端这一个过程可以用序列化和反序列化来实现
从前端获取数据
一般来说,我们从前端获取的数据有form表单,button响应,checkbox,input等等,我们通过jquery来获取数据。其中比较多的是从input中获取,简单的用一行代码就能实现
$('#+id'/'.+class').val()
当前获取的数据集就是一个模型,当然这个模型没办法用ajax传输给后端。
ajax是前后端传递数据的一种方法,它是使用json数据字符串进行传输的,json则是一个键值结构的字典。现在,我们要将前端的模型转化为json数据然后在转成json数据字符串进行传输
data={'test':ccdn,'dict':ccdntest',...}
var data_str=JSON.stringify(data)
$.ajax({
url:'这里写接收数据的后端的地址',
method:'这里写request方法,需要大写’,
data:data_str,
contentType:'application/json',
dataType:'json',
success(){},//成功以后的回调函数
error(){},//失败后的回调函数
})
当然如果不想做这一步,前面postman也可以模拟前端发出的请求
后端处理请求
request分为很多种,我这里主要讲一下get和post请求
前面讲过了APIVIEW,我们就直接用APIVIEW讲处理方式了,当然也有最原始的view方法,但是APIVIEW很明显更加实用,所以就不赘述了。
前面的视图博文已经说明了一个完整的get结构,由于还没有往我们的数据库中存储东西,我们就直接讲POST请求了
class CCDNuser(APIView):
def get(self,request):
return Response('Okay')
这是之前的get请求,在这后面添加
def post(self,request)
pass
这样就补全了这个APIVIEW的逻辑
我们可以在这个代码块中添加
data=request(data)
print(data)
来查看前端post的数据
至于如何用View进行反序列化存储数据,是可以实现的,不过之后我们会用到序列化器Serializer,所以就没有必要在View视图中进行反序列化的操作了,如果有兴趣可以参考我同学的博客https://blog.csdn.net/paul0926/article/details/90727620