十.总结drf视图
一.对一个资源的五个操作: 如users资源:
序列化是把模型/表中数据以json格式的数据返回给前端,反序列化是把前端通过http post提交过来的json格式数据(data)插入到数据库。
小知识点:只要看到queryset就一定跟数据库有关系(从数据库拿数据)
.get请求,获取资源,有两类: 1.1获取列表 返回列表 [{},{}] 请求的url =>/api/users/ 2.2获取单个对象 返回对象 {} 请求的url =>/api/users/1/ 1是id或pk 2.post请求,创建/增加一条记录,: 请求的url =>/api/users/ 传参body体中:=>且必须是json格式 如提交数据:{"username":"rock","email":"rock@qq.com","password":"123456"} 3.put请求,更新一条记录: 请求的url =>/api/users/1/ 数据也是body体中=>且是json 如修改数据提交:{"username":"rock","email":"rock@qq.com"} 4.patch请求,更新一条记录: 请求的url =>/api/users/1/ 数据也是在body体中且json格式 如修改数据提交:{"username":"rock","email":"rock@qq.com"} put和patch的区别是:如更新的资源有50个字段,如果是put请求修改的数据在body体的json中除了id不用传外其它所有49个字段都必须得传,只要少传一个字段就会出错。而patch请求呢只需传你要更新的那个字段即可。 5.delete请求,删除一条记录: 请求的url =>/api/users/1/
二.无论是序列化还是返序列化还是创建记录都交给序列化类(都是对它的调用),但是它们交给序列化的方式不同(传的参数不一样):
IdcSerializer =>序列化类 1.1序列化单个对象: IdcSerializer(object, many=False) 1.2.序列化多个对象: IdcSerializer(queryset, many=True) 1.3返序列化(新增加一条记录):content是http post提交过来的数据 IdcSerializer(data=content) 1.4更新一条记录: IdcSerializer(object,data=content)
11
22